使用 Clojure Cells 或 add-watcher 进行反应式程序?
我想在我的 clojure 程序中使用大量反应式(数据流)类型编程技术。在 clojure refs 上使用“add-watcher”就足以做到这一点。一个简单的例子是当底层数据发生变化时更新 GUI。
I want to use alot of reactive (dataflow) type programming techniques in my clojure program. Is uses "add-watcher" on clojure refs going to be good enough to do this. A simple case for this would be to update the GUI when the underlying data changes.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,这确实是个好主意。我在自己的代码中使用它来在流数据发生变化时更新 UI 元素。唯一需要注意的是,如果
atom
、ref
的话,观察者会在agent
的线程或主线程中同步调用> 或var
。所以为了避免阻塞线程,不要在watchers中做太多的处理。如果您需要这样做,请创建一个未来
。Yes, that is indeed a good idea. I have used it in my own code to update UI elements when the streaming data changes. Only thing you need to be careful of is that, the watchers are called synchronously in the
agent
's thread or the main thread ifatom
,ref
orvar
. So to avoid blocking the thread, don't do too much processing in the watchers. If you need to do so then create afuture
.