【发布时间】:2015-03-15 10:30:56
【问题描述】:
我怎样才能让这个承诺的deref 抛出一个异常,就像如果未来的主体抛出一个未来可能会导致一个异常一样?
(let [p (promise)]
(something-that-could-deliver-an-error p)
@p) ; should explode with the delivered Exception
我目前正在考虑通过向 Promise 提供 fn 来执行此操作,但我怀疑有一种更惯用的方式来执行此操作。
背景:我同时运行多个期货。如果其中任何一个出错,我想立即取消所有其他期货并输出错误。也许有更好的方法?
【问题讨论】:
-
到目前为止,我决定遵循 erlang 的标记元组方法,并以
[:ok value]或[:error exception]的形式将内容交付给承诺。
标签: clojure