一 月
26
火曜日
2021

core.asyncでPromiseをチャネルとして扱う

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』にもしっかりと書かれていた。