我在 ClojureScript 上使用 core.async 以避免使用 node.js 回调。问题是我达到了 1024 条待处理消息的限制。
为了避免这种情况,我需要将所有消息发送到同一 go
block 内的 channel 。但这在 core.async 上实际上是不可能的,因为匿名函数使 go
的效果无效,所以我不能这样做:
(go
(. socket on "data" #(>! chan %)))
那么,有没有办法绕过这个限制呢?
最佳答案
我不确定我是否理解为什么它必须位于同一个 go block 中。通常,您只需这样做:
(. socket on "data" #(go (put! chan %)))
然后在另一个go block 中处理chan
关于node.js - 如何使用 core.async 代替回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53908423/