Package Exports
- await-first
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (await-first) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
await-first
Wait the first event in a set of event pairs, then clean up after itself.
Install
$ npm install await-first --saveExample
awaitFirst(ee, events)
const EventEmitter = require('events');
const awaitFirst = require('await-first');
async function waitMessageOrClose(ee) {
const o = await awaitFirst(ee, [ 'message', 'close' ]);
switch (o.event) {
case 'message':
const msg = o.args[0]; // [ 'hello world' ]
console.log('new message =>', msg);
break;
case 'close':
console.log('closed');
break;
}
}
const ee = new EventEmitter();
waitMessageOrClose(ee);
setTimeout(() => {
ee.emit('message', 'hello world');
}, 1000);obj.awaitFirst(events)
const net = require('net');
const awaitFirst = require('await-first');
async function connect() {
const socket = net.connect(8080, '127.0.0.1');
socket.awaitFirst = awaitFirst;
try {
// wait `connect` or `error` event
await socket.awaitFirst([ 'connect', 'error' ]);
} catch (err) {
console.log(err);
}
// ...
}
connect();