我正在调用一个包含三个参数的本机函数:nativeFunction(success, error, options);
success-callback
,一个函数ex。 function(s) {console.log(s);}
error-callback
,一个函数ex。 function(e) {console.log(e);}
我有一个像这样的公共ClojureScript函数,包含调用:
;; this works but I can't separate the success from the failure
(defn ^:export publicFn [cb]
(nativeFunction. cb cb #js {}))
;; this doesn't work
(defn ^:export publicFn [cb]
(nativeFunction. (partial cb js/undefined) cb #js {}))
所以应该这样调用:myNs.publicFn(function(e, s) {console.log(e, s);});
。
换句话说,我希望能够在ClojureScript中将双处理程序约定转换为第一个错误参数约定,同时与Javascript兼容。
有可能吗?
答案 0 :(得分:0)
我必须运行其他代码,否则可能会发生冲突,因为以下解决方案有效:
(defn ^:export publicFn [cb]
(nativeFunction. (partial cb js/undefined) cb #js {}))
我可以从#js(错误的JavaScript)中调用它,如下所示:
myFn(function(e, d) { console.log(e, d); } );