sqmicro-commons
Version:
Commons for SQ analytics microservices.
16 lines • 564 B
JavaScript
/**
* Получить Promise из EventEmitter.
* @param {EventEmitter} target
* @param {string} [fulfillEventName=end]
* @param {string} [rejectEventName=error]
* @returns {Promise}
*/
module.exports = function promisifyEventEmitter(target, fulfillEventName = 'end', rejectEventName = 'error') {
return new Promise((fulfill, reject) => {
target.once(fulfillEventName, fulfill);
target.once(rejectEventName, (...args) => {
target.removeListener(fulfillEventName, fulfill);
reject(...args);
});
});
};