首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clojure - core.async vary meta

Clojure - core.async vary meta
EN

Stack Overflow用户
提问于 2015-09-24 21:49:59
回答 1查看 94关注 0票数 1

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

代码语言:javascript
复制
(apply async/put! port (vary-meta val assoc :key *val*) args)

我不明白vary-metaasync/put!的反复使用,为什么需要它?

例如,在CircleCI前端代码和九月份/最终中可以看到。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-25 02:43:24

基本上,他们使用core.async作为异步事件系统,并且在元数据中用id注释用于事件的值。

在CircleCI体系结构中,当它控制的任何操作的结果完成(或错误或其他什么)时,他们使用它来更新输入控件的状态。

通过查看窗体命名空间,您可以看到这是如何工作的。uuid实例是在第49行中在包装管理按钮处理程序中创建的。您可以找到在release-button!命名空间中调用frontend.controls的事件处理代码的示例。

当事件处理程序处理事件时,它们将frontend.async/*uuid*绑定到与事件值关联的uuid,以便相关的multimethod能够访问它。您可以在frontend.core中看到这一点。

附注:我试图包括更多的链接,但我没有足够的声誉与堆叠溢出。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32771500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档