无涯教程-Clojure - await-for函数

86 阅读1分钟

由于更新代理的值存在延迟,因此Clojure提供了"await-for"函数,该函数用于指定等待代理更新的时间(以毫秒为单位)。

await-for - 语法

(await-for time agentname)

参数      -  " agentname"是应将" await-for"函数设置为其的代理, "time"是等待的时间(以毫秒为单位)。

返回值  -  如果由于超时而返回,则返回逻辑假,否则返回逻辑真。

await-for - 示例

以下程序显示了有关如何使用它的示例。

(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

您可以从上面的程序中看到代理的值会立即显示在屏幕上,因为"wait-for"函数包含一个延迟,这使Clojure可以更新代理的值。

参考链接

www.learnfk.com/clojure/clo…