await
after event trigger just once, like promise finite state machine and self clean up.
// in some async function
import afterEvent from '@realdennis/after-event';
// thenable usage
afterEvent('load', document).then(() => {
/*
** It would be called just one time,
** cause promise fulfilled is the final state, right?
*/
// do something here
});
// or in await usage
async () => {
await afterEvent('click'); // If you do not pass second parameter, default is window.
console.log('window has been clicked!');
};
$ npm install @realdennis/after-event
Definitely Yes! It remove self listener after event trigger, so the different usage will never conflict.
Example 1
afterEvent('click').then(() => console.log(1));
afterEvent('click').then(() => console.log(2));
// click window
// 1
// 2
// click again
// nothing happen!
Example 2
afterEvent('SOME_EVENT').then(() => console.log(1));
window.dispatchEvent(new Event('SOME_EVENT'));
// 1
afterEvent('SOME_EVENT').then(() => console.log(2));
window.dispatchEvent(new Event('SOME_EVENT'));
// 2
LICENSE MIT © 2019 realdennis