Skip to content

Instantly share code, notes, and snippets.

@noseratio
Last active May 2, 2023 11:25
Show Gist options
  • Save noseratio/b14c135f9677caf61f0e5d144d78bce3 to your computer and use it in GitHub Desktop.
Save noseratio/b14c135f9677caf61f0e5d144d78bce3 to your computer and use it in GitHub Desktop.
disposable event listener
if (!EventTarget.prototype.addDisposableEventListener) {
EventTarget.prototype.addDisposableEventListener = function(type, listener, options) {
this.addEventListener(type, listener, options);
return () => this.removeEventListener(type, listener);
}
}
const dispose = document.body.addDisposableEventListener(
'click', () => console.log('clicked!'));
try {
await new Promise(r => setTimeout(r, 5000));
}
finally {
dispose();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment