相关疑难解决方法(0)

不能在core.async的go块中使用for循环?

我是clojure core.async库的新手,我试图通过实验来理解它.

但当我尝试时:

(let [i (async/chan)] (async/go (doall (for [r [1 2 3]] (async/>! i r)))))
Run Code Online (Sandbox Code Playgroud)

它给了我一个非常奇怪的例外:

CompilerException java.lang.IllegalArgumentException: No method in multimethod '-item-to-ssa' for dispatch value: :fn
Run Code Online (Sandbox Code Playgroud)

我尝试了另一个代码:

(let [i (async/chan)] (async/go (doseq [r [1 2 3]] (async/>! i r))))
Run Code Online (Sandbox Code Playgroud)

它根本没有编译器异常.

我完全糊涂了.发生了什么事?

clojure core.async

9
推荐指数
1
解决办法
985
查看次数

标签 统计

clojure ×1

core.async ×1