代码之家  ›  专栏  ›  技术社区  ›  nha

Clojure核心。异步变量元

  •  1
  • nha  · 技术社区  · 10 年前

    我在ClojureScript中多次看到这样的代码:

    (apply async/put! port (vary-meta val assoc :key *val*) args)
    

    我不明白重复使用 vary-meta 随着 async/put! ,为什么需要它?

    例如,在 CircleCI frontend 代码和 ninjudd/eventual .

    1 回复  |  直到 10 年前
        1
  •  3
  •   Jed Clinger    10 年前

    基本上,他们使用核心。async作为一个异步事件系统,他们在元数据中使用id来注释事件的值。

    在CircleCI架构的情况下,他们使用它的目的之一是在输入控件控制的任何操作的结果完成(或错误或其他)时更新输入控件的状态。

    您可以通过查看 forms namespace uuid实例是在wrap托管按钮处理程序的第49行创建的。您可以找到调用 release-button! frontend.controls 命名空间。

    当事件处理程序处理事件时 frontend.async/*uuid* 到与事件值关联的uuid,以便相关的多方法可以访问它。你可以在 frontend.core .

    p、 我试着加入更多的链接,但我对斯塔科弗洛的声誉不够。

    推荐文章