Clojure相当于jQuery Deferred吗?

马里奥

Clojure的有promisefuturedelay,等,但没有一个是语义上类似于jQuery的一个Deferred对象。如果在值可用之前取消引用,它们通常会阻塞。延迟的对象利用回调。Clojure(不是ClojureScript)本身提供什么,类似于jQuery Deferred?

约翰·怀斯曼

您可以使用其他Clojure构造来获取所需的内容,但是我认为核心Clojure中没有类似的东西。

举一个简单的例子,它使用future计算值但将其提供给提供的回调函数:

(defn deferred [func cb]
  (future (let [v (func)]
            (cb v))))

;; (deferred #(do (Thread/sleep 1000) 7) #(println %))

您可以添加特殊的异常处理,并用于future-done?检查值是否已准备好而不阻塞。(在某些情况下,面向回调的异步行为方法非常好,但是,如果您没有对Clojure提供的其他方法进行过多试验,您可能也会发现它们非常适合。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

相当于CCleaner吗?

来自分类Dev

在Julia中相当于Python的“ with”吗?

来自分类Dev

WTForms相当于Go吗?

来自分类Dev

Java相当于C的poll()吗?

来自分类Dev

相当于Java的toordinal()的Java吗?

来自分类Dev

有相当于水晶的撬动吗?

来自分类Dev

PyQT相当于wx CallAfter吗?

来自分类Dev

犰狳相当于Matlab置换吗?

来自分类Dev

axios相当于http请求吗?

来自分类Dev

JSDoc相当于Typescript的as const吗?

来自分类Dev

Nix相当于“ guix挑战”吗?

来自分类Dev

tmux相当于“ screen -R”吗?

来自分类Dev

相当于CGEvent的NSEvent`subtype`吗?

来自分类Dev

Winform相当于Android的片段吗?

来自分类Dev

相当于“酿造医生”吗?

来自分类Dev

Qpid相当于RabbitMQ firehose吗?

来自分类Dev

相当于Lua的C ++ setw吗?

来自分类Dev

相当于os.walk的bash吗?

来自分类Dev

相当于__attribute((objc_requires_super))的Swift吗?

来自分类Dev

相当于Ruby的each_with_index的Python吗?

来自分类Dev

在VBNET中相当于(IntPtr)1吗?

来自分类Dev

Java相当于unsigned long long不是BigInteger吗?

来自分类Dev

Sapply(来自R)相当于Julia吗?

来自分类Dev

有相当于Windows的远程桌面吗?

来自分类Dev

相当于php 5.4的password_hash吗?

来自分类Dev

Matplotlib相当于ggplot geom_ribbon吗?

来自分类Dev

有相当于MATLAB独特的Python吗?

来自分类Dev

在Rust中相当于Python的subprocess.communicate吗?

来自分类Dev

Scala相当于java.util.Collection吗?