javascript - Clojurescript - #js 的部分函数

标签 javascript clojurescript

我正在调用一个具有三个参数的 native 函数:nativeFunction(success, error, options);

  • 成功回调,一个函数。 函数{console.log(s);}
  • 错误回调,一个函数。 function(e) {console.log(e);}
  • 选项(如果重要)JSON 映射

我有一个像这样的公共(public) 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 兼容。

可能吗?

最佳答案

嗯,我一定运行了一些其他代码,或者可能存在冲突,因为以下解决方案有效:

(defn ^:export publicFn [cb]
  (nativeFunction. (partial cb js/undefined) cb #js {}))

我可以像这样从#js(错误的JavaScript)调用它:

myFn(function(e, d) { console.log(e, d); } );

关于javascript - Clojurescript - #js 的部分函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32057955/

相关文章:

javascript - 浏览器/JS : reduce on an object

javascript - Bootstrap DataTable 从导出中排除某些可见列

javascript - 如何打印特定的 HTML 图像

clojure - 需要多个 'sub-namespaces' 和 :as 的快捷方式

javascript - 从谷歌编译器中排除函数

javascript - 查找数组中的范围

javascript - 使用 select 标签中的选项作为 Javascript 的输入

clojure - 如何将带样式的 HTML 标签转换为 Hiccup? react 问题

javascript - 从 Clojure 中的选择中获取选项的值

javascript - 在ClojureScript中使用 'eval'特殊形式来判断一个形式是否是文字