Google chrome extension 如何在dart中删除chrome.webRequest API中的侦听器?

Google chrome extension 如何在dart中删除chrome.webRequest API中的侦听器?,google-chrome-extension,dart,dart-js-interop,Google Chrome Extension,Dart,Dart Js Interop,与之相关,我正在尝试使用dart:js注销侦听器 调用onBeforeRequest.callMethod('removeListener',[callback])之后我注意到侦听器仍在被调用。此外,在添加侦听器之后,hasstener直接返回false(即使侦听器正在注册) 似乎有必要100%遵循dart:js关于如何在javascript环境中使用dart函数的建议。我想我的问题是原来的dart动态函数自动包装在代理中。因此,addListener的callMethod使用了不同的代理对象,

与之相关,我正在尝试使用dart:js注销侦听器

调用onBeforeRequest.callMethod('removeListener',[callback])之后我注意到侦听器仍在被调用。此外,在添加侦听器之后,
hasstener
直接返回
false
(即使侦听器正在注册)


似乎有必要100%遵循
dart:js
关于如何在javascript环境中使用dart函数的建议。我想我的问题是原来的dart动态函数自动包装在代理中。因此,addListener的callMethod使用了不同的代理对象,而hasListener的callMethod使用了不同的代理对象,甚至认为它们都基于相同的原始dart对象(即回调)

解决方案是使用JSF函数并定义回调,如下所示:

var callback = new JsFunction.withThis((that, map) { /* some code */ });
var callback = new JsFunction.withThis((that, map) { /* some code */ });