首页 > 解决方案 > 如何从大量 core.async go 通道中收集数据?

问题描述

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

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

标签: clojure

解决方案


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


推荐阅读