(require-macros '[cljs.core.async.macros :refer [go]])
(require '[cljs.core.async :refer [promise-chan chan tap untap timeout mult <! >!]])
(def p-c (promise-chan))
(dotimes [_ 3] (go (println (<! p-c))))
(go (>! p-c 1))
It should print '1' three times. but it only prints one. I think this is due to https://dev.clojure.org/jira/browse/ASYNC-159. It was fixed in the latest version of core-async.