Clojure - await-for
由于更新代理值时存在延迟,Clojure 提供了"await-for"函数,用于指定等待代理更新的时间(以毫秒为单位)。
语法
语法如下。
(await-for time agentname)
参数 − "agentname"是应为其设置"await-for"函数的代理。 'time'是以毫秒为单位的等待时间。
返回值 − 如果由于超时返回则返回逻辑 false,否则返回逻辑 true。
示例
以下程序显示了如何使用它的示例。
(ns clojure.examples.example (:gen-class)) (defn Example [] (def counter (agent 0)) (println @counter) (send-off counter + 100) (println (await-for 100 counter)) (println @counter) (shutdown-agents)) (Example)
输出
上面的程序产生以下输出。
0 true 100
从上面的程序中可以看到,代理的值立即打印到屏幕上,因为"await-for"函数包含了延迟,这使得 Clojure 可以更新代理的值。