@await/event

1.0.3 • Public • Published

await-event lets you interact with event emitters using promises (or async-await).

Usage

The basic usage pattern is:

const event = require("@await/event");
const subprocess = spawn("node", ["subprocess.js"]);

const message = await event({ eventEmitter: subprocess, resolveOn: "message", rejectOn:["close", "error"] });

By default, if the event handler was only passed on argument, then it will be returned on success. If it is passed multiple arguments, then an array with all the arguments will be returned instead. If you'd always like an array, pass forceArray true as an option.

If any of the rejected events take place, an EventError will be thrown.

Multiple success events

You can pass an array to resolveOn as well, in which case the return value with be an object with three fields: name, value, and args. Name is the name of the event that succeeded, value is simply the first argument passed to the event handler, and args is all the arguments. That way you can continue using "single return" style:

const { name, value } = await event({ ..., resolveOn: ["a", "b"] });

Timeout

await event({ eventEmitter, ..., timeout: 1000 });

If the appropriate event doesn't transpire before the timeout, a TimeoutError will fire.

Readme

Keywords

none

Package Sidebar

Install

npm i @await/event

Weekly Downloads

1

Version

1.0.3

License

MIT

Unpacked Size

6.13 kB

Total Files

4

Last publish

Collaborators

  • tolmasky
  • me1000
  • pco