每个人都在谈论core.async有多棒,以及如何改进clojurescript中的事件处理.我一直在关注ClojureScript 101教程,我没有从这些代码示例中看到任何明显的优势.我错过了什么?
为什么在这里使用core.async更好?
(defn listen [el type]
(let [out (chan)]
(events/listen el type
(fn [e] (put! out e)))
out))
(defn dosomethingasync
[e]
(js/console.log "async: " e))
(let [clicks (listen (dom/getElement "search1") "click")]
(go (while true (dosomethingasync (<! clicks)))))
Run Code Online (Sandbox Code Playgroud)
与
(defn dosomethingcallback
[e]
(js/console.log "callback: " e))
(events/listen (dom/getElement "search2") "click" dosomethingcallback)
Run Code Online (Sandbox Code Playgroud)