如何从大量的core.async go通道收集数据?

时间:2019-06-27 16:47:56

标签: clojure

如何从大量go渠道中收集数据?我得到assert failed: <! used not in (go ...)的以下代码。我知道为什么得到它,我在问什么是从所有渠道消费的最佳方法。

(->> state :pods (map #(go [(pd/id %) 
    (<! (f/pod-metrics fleet %))])) (map <!) (into {}))

1 个答案:

答案 0 :(得分:1)

使用https://clojuredocs.org/clojure.core.async/merge将您的源通道合并为一个,然后使用<!!从中获取val。请注意,<!仅可在go块内使用。