当Clojure Promise被实现或失败时,如何监听?

3
我有一个Clojure承诺。当它被实现或失败时,我想要触发一个动作。如何在Clojure中实现?
在这里:http://dev.clojure.org/display/design/Promises描述了thenrecover可以定义这样的回调函数,但我没有看到它是在Clojure核心中。
2个回答

2

感谢您的回答,使用code.async通道提供了一个简洁的解决方案。 - fifigyuri

1
我最近完成了一个项目,需要Clojure中的Promise和Future类似的功能。经过一些研究,我选择了Cljque。我认为它基本上是http://dev.clojure.org/display/design/Promises上讨论的所有内容的概念验证。您可以使用attend来添加回调函数到Promise和Future。它还提供了thenrecover操作。
如果您可以使用Java 8运行时,那么您可能只需编写一些Clojure风格的包装器,以java.util.concurrent.CompletableFuture为基础。

它已被归档且是实验性的。可能不适合在其上构建。感谢您指出它。 - fifigyuri
@fifigyuri - 我在使用它时没有遇到任何问题,但这并不意味着没有任何错误。然而,使用Clique可能比从头开始开发自己的解决方案更少出错,即使它是“实验性的”。如果你能找到一些正在积极维护的东西,那可能会更好,但如果最终你找不到任何东西,至少这给了你一个不错的起点。另外,请看我的编辑。 - DaoWen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接