从dart 2调用javascript函数,该函数作为参数传递

时间:2018-08-10 02:12:20

标签: dart dart-js-interop

我们如何在飞镖2中实现这一点?

content_script.js:

d={'epochs':10, 'lr':1e-3}

backgroud.js:

clf.set_params(**d)

从dart调用chrome.runtime.sendMessage("hello", function(response) { console.log(response); }); 时,它不会将响应发送回发件人。

我已经实现了一个示例,该示例能够在触发事件时从事件中读取参数,但是由于chrome.runtime.onMessage.addListener(function(a,b, responseCallback){ responseCallback("world"); }); 作为参数传递而无法发送响应: https://gitlab.com/drbcode/chrome.dart/blob/master/examples/runtime_test/lib/runtime.dart#L46

API文档:

https://developer.chrome.com/apps/runtime#method-sendMessage https://developer.chrome.com/apps/runtime#event-onMessage

1 个答案:

答案 0 :(得分:0)

绊了一会儿后,我在stackoverflow上发现了关于chrome.runtime.onMessage的内容:

Chrome Extension Message passing: response not sent

chrome.runtime.onMessage.addListener

事件侦听器返回时,此函数将变为无效,除非您从事件侦听器返回true表示您希望异步发送响应(这将使消息通道向另一端开放,直到调用sendResponse为止)。

对使用dart js互操作实现事件侦听器(“与上述相似”)感到好奇的人可以签出此存储库:

https://github.com/drbcode/dart_event_listener_example