Skip to content

realdennis/afterEvent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

afterEvent

await after event trigger just once, like promise finite state machine and self clean up.

Usage

// 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!');
};

Installation

$ npm install @realdennis/after-event

Did afterEvent register clean the event listener?

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

About

`await` after event triggering just once, like promise finite state machine and SELF CLEAN UP!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published