I am trying to remove the onRequest
listener added by chrome.extension.onRequest.addListener
after a request is made, like this:
chrome.extension.onRequest.addListener( function(request){ chrome.extension.onRequest.removeListener(); other_function(request); } );
The problem is that I don't know if this works or not. I tried chrome.extension.onRequest.hasListener
, which seems not to give the right answer, so I am wondering if there are some other ways to remove the onRequest
listener or check if the listener exists or not.
Thanks!
Event listeners can also be removed by passing an AbortSignal to an addEventListener() and then later calling abort() on the controller owning the signal.
removeListener
takes an argument. You need to name the listener function and then remove it by name:
function doStuff(request){ chrome.extension.onRequest.removeListener(doStuff); other_function(request); } chrome.extension.onRequest.addListener(doStuff);
Or, more succinctly:
chrome.extension.onRequest.addListener( function doStuff(request){ chrome.extension.onRequest.removeListener(doStuff); other_function(request); } );
Another simple and straight forward approach when using anonymous functions:
chrome.runtime.onMessage.addListener(function(msg, sender, reply) { chrome.runtime.onMessage.removeListener(arguments.callee); });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With