@realdennis/after-event
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

afterEvent

An one time usage for await after event trigger, in the other words, promisify the event handler!

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

Readme

Keywords

none

Package Sidebar

Install

npm i @realdennis/after-event

Weekly Downloads

0

Version

1.0.1

License

MIT

Unpacked Size

5.83 kB

Total Files

14

Last publish

Collaborators

  • realdennis