UNPKG

events.once

Version:
19 lines (17 loc) 472 B
'use strict' module.exports = function once (emitter, name) { return new Promise((resolve, reject) => { const onceError = name === 'error' const listener = onceError ? resolve : (...args) => { emitter.removeListener('error', error) resolve(args) } emitter.once(name, listener) if (onceError) return const error = (err) => { emitter.removeListener(name, listener) reject(err) } emitter.once('error', error) }) }