我正在尝试使用Node.js Electron项目中的cljs库。
我在cljs库中调用的函数返回一个core.async
通道对象。当我console.log
时是这样的:
{
takes: { head: 0, tail: 0, length: 0, arr: [ <32 empty items> ] },
dirty_takes: 0,
puts: { head: 0, tail: 0, length: 0, arr: [ <32 empty items> ] },
dirty_puts: 0,
buf: {
buf: { head: 0, tail: 0, length: 0, arr: [Array] },
n: 1,
'cljs$lang$protocol_mask$partition0$': 2,
'cljs$lang$protocol_mask$partition1$': 0
},
closed: false,
add_BANG_: [Function: G__11914] {
'cljs$core$IFn$_invoke$arity$1': [Function: G__11914__1],
'cljs$core$IFn$_invoke$arity$2': [Function: G__11914__2]
}
}
如何通过Javascript与之交互?
如何在js中做类似(take! channel callback)
的事情?
答案 0 :(得分:0)
如果您可以从JS访问cljs.core.async
名称空间,则可以执行此操作。
;; CLJS
(take! channel callback)
;; JS
cljs.core.async.take_BANG_(channel, function(val) { console.log(val); });