Mit Clojure der Core.Async kann man einen Kanal Karte über Wandler unter Verwendung von:Core.async: Map-Kanal über Asynchron-Funktion
(def my-chan (chan (buffer 10) (map inc)))
Aber was passiert, wenn die Mapper-Funktion selbst async ist?
sagen: Wir haben ein:
(defn async-inc [n]
(let [c (promise-chan)]
(put! (inc n))
c))
Gibt es eine ähnliche Art und Weise präzise den Kanal über diese Funktion abzubilden? Oder würde man so etwas zu tun haben:
(def my-chan (chan (buffer 10)))
(def my-chan2 (chan (buffer 10)))
(go (while true
(>! my-chan2
(<! (async-inc (<! my-chan))))))
Es wäre nicht wirklich Mapping, da zwei Kanäle benötigt werden statt einer.