core.async-1.1.582 からClojureScriptのJavascript interopのための名前空間 cljs.core.async.interop
が用意されPromiseをチャネルとして扱うためのマクロと関数が追加されていたのでメモ。
コミットの4b71889eにて以下関数とマクロが追加されている。
p->c
- Promiseをチャネルに変換する関数。
<p!
- Promiseをチャネルに変換した上、チャネルから値を読み取るマクロ。
goブロック内で使用できる。
まだEXPERIMENTALのようだ。
またClojureScriptの公式ガイドのPromise Interopの『Using Promises with core.async』にもしっかりと書かれていた。