Skip to content

Instantly share code, notes, and snippets.

@channyeintun
Forked from jkempff/eventIterator.js
Created September 2, 2021 05:28
Show Gist options
  • Save channyeintun/e986c15de03a073ff11a77027681abb1 to your computer and use it in GitHub Desktop.
Save channyeintun/e986c15de03a073ff11a77027681abb1 to your computer and use it in GitHub Desktop.
Async generator for DOM events
async function* eventIterator(element, eventName, subscribed) {
while(true) {
yield new Promise(resolve => {
const listener = e => {
element.removeEventListener(eventName, listener);
resolve(e);
};
element.addEventListener(eventName, listener);
})
}
}
(async () => {
const bodyClicks = eventIterator(document.body, 'click');
for await (let event of bodyClicks) {
console.log(event);
}
})()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment