await-event

2.1.0 • Public • Published

Await Event

A really stupid utility I use frequently for event emitters. Allows you to yield an event and return the results. I use this a lot of locking.

Note: you probably shouldn't use this for the error event.

Example

var PassThrough = require('stream').PassThrough
 
var stream = new PassThrough()
// you attach it directly on an event emitter
stream.await = require('await-event')
 
co(function* () {
  var chunk = yield stream.await('data')
  var chunk = yield stream.await('data')
  var chunk = yield stream.await('data')
}).catch(noop)
 
stream.write('some chunk')

You can use awaitEvent without attach on an event emitter:

var EventEmitter = require('event')
 
var emitter = new EventEmitter()
co(function*() {
  yield awaitEvent(emitter, 'ready')
}).catch(noop)

When use this for error event, it will reject once error event emitted:

var EventEmitter = require('event')
 
var emitter = new EventEmitter()
co(function*() {
  // it will throw when `error` event emitted
  yield awaitEvent(emitter, 'error')
}).catch(err => console.error(err.stack))

Dependencies (0)

    Dev Dependencies (2)

    Package Sidebar

    Install

    npm i await-event

    Weekly Downloads

    56,718

    Version

    2.1.0

    License

    MIT

    Last publish

    Collaborators

    • dead_horse
    • dead-horse
    • fengmk2
    • coderhaoxin
    • jongleberry