pup*_*eno 3 clojure clojurescript core.async
我有一个来自ClojureScript端口的循环读取vals.在预定义的超时(比如5秒)之后,我需要退出循环,如果没有出现超过另一个预定义超时(例如,200毫秒)的val,我还需要退出循环.
通过激励循环我的意思是,结束它并运行其他东西,例如另一个函数.
这可能吗?
使用 alts!
;; within your go-loop:
(let [[val ch] (alts! [my-ch (timeout 500)])]
(when (identical? my-ch ch)
;; dispatch val here...
(recur))
;; not calling recur here, to exit the loop
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
834 次 |
| 最近记录: |