【发布时间】:2014-05-23 15:47:40
【问题描述】:
在下面的示例中,我可以看到,发布的消息到达订阅的频道,尽管它们是在订阅之前发布的。
(let [in (async/chan)
out (async/chan)
pub (async/pub in :key)]
(async/go
(>! in {:id 1 :key :k1})
(>! in {:id 2 :key :k1})
(>! in {:id 3 :key :k1}))
(async/sub pub :k1 out)
(async/go-loop []
(println (<! out))
(recur)))
这是预期的行为吗?据我在文档中看到,它明确指出:
当没有匹配的潜艇时收到的物品会被丢弃。
我在 Clojure 和 ClojureScript 中得到相同的结果。
添加: 使用 mult/tap 我看到类似的行为
【问题讨论】:
标签: clojure clojurescript core.async