嵌套对象作为 ClojureScript 中的回调
Nested object as callback in ClojureScript
我正在尝试将以下 JavaScript 函数定义转换为 ClojureScript 但无济于事:
chrome.webRequest.onBeforeRequest.addListener(
callback_function,
{urls: ["<all_urls>"]},
["blocking"]);
这是我用来尝试复制的 ClojureScript:
(defn my-listener
[data]
(.log js/console data))
(defn web-request
[listener]
(.. js/chrome -webRequest -onBeforeRequest (addListener listener) (clj->js {"urls" ["<all_urls>"]}) (clj->js ["blocking"])))
(web-request my-listener)
函数声明的最后两段似乎没有正确生成({urls: ["<all_urls>"]}, ["blocking"]
位)。以下是编译器从 ClojureScript 版本输出的内容:
example.core.my_listener = function example$core$my_listener(data) {
return console.log(data)
}
;
example.core.web_request = function example$core$web_request(listener) {
return chrome.webRequest.onBeforeRequest.addListener(listener).clj__GT_js(new cljs.core.PersistentArrayMap(null ,1,["urls", new cljs.core.PersistentVector(null ,1,5,cljs.core.PersistentVector.EMPTY_NODE,["\x3call_urls\x3e"],null )],null )).clj__GT_js(new cljs.core.PersistentVector(null ,1,5,cljs.core.PersistentVector.EMPTY_NODE,["blocking"],null ))
}
;
example.core.web_request.call(null , example.core.my_listener);
如有任何建议,我们将不胜感激。谢谢!
您的 addListener method/function/prototype_inheritance_thing 是一个三元数的过程,因此您必须这样调用它:
(defn web-request
[listener]
(.. js/chrome -webRequest -onBeforeRequest (addListener listener (clj->js {"urls" ["<all_urls>"]}) (clj->js ["blocking"]))))
我正在尝试将以下 JavaScript 函数定义转换为 ClojureScript 但无济于事:
chrome.webRequest.onBeforeRequest.addListener(
callback_function,
{urls: ["<all_urls>"]},
["blocking"]);
这是我用来尝试复制的 ClojureScript:
(defn my-listener
[data]
(.log js/console data))
(defn web-request
[listener]
(.. js/chrome -webRequest -onBeforeRequest (addListener listener) (clj->js {"urls" ["<all_urls>"]}) (clj->js ["blocking"])))
(web-request my-listener)
函数声明的最后两段似乎没有正确生成({urls: ["<all_urls>"]}, ["blocking"]
位)。以下是编译器从 ClojureScript 版本输出的内容:
example.core.my_listener = function example$core$my_listener(data) {
return console.log(data)
}
;
example.core.web_request = function example$core$web_request(listener) {
return chrome.webRequest.onBeforeRequest.addListener(listener).clj__GT_js(new cljs.core.PersistentArrayMap(null ,1,["urls", new cljs.core.PersistentVector(null ,1,5,cljs.core.PersistentVector.EMPTY_NODE,["\x3call_urls\x3e"],null )],null )).clj__GT_js(new cljs.core.PersistentVector(null ,1,5,cljs.core.PersistentVector.EMPTY_NODE,["blocking"],null ))
}
;
example.core.web_request.call(null , example.core.my_listener);
如有任何建议,我们将不胜感激。谢谢!
您的 addListener method/function/prototype_inheritance_thing 是一个三元数的过程,因此您必须这样调用它:
(defn web-request
[listener]
(.. js/chrome -webRequest -onBeforeRequest (addListener listener (clj->js {"urls" ["<all_urls>"]}) (clj->js ["blocking"]))))