summaryrefslogtreecommitdiff
path: root/lib/events.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/events.js')
-rw-r--r--lib/events.js46
1 files changed, 10 insertions, 36 deletions
diff --git a/lib/events.js b/lib/events.js
index 902b27544b..c1343acbf3 100644
--- a/lib/events.js
+++ b/lib/events.js
@@ -642,11 +642,7 @@ async function once(emitter, name, options = {}) {
const errorListener = (err) => {
emitter.removeListener(name, resolver);
if (signal != null) {
- eventTargetAgnosticRemoveListener(
- signal,
- 'abort',
- abortListener,
- { once: true });
+ eventTargetAgnosticRemoveListener(signal, 'abort', abortListener);
}
reject(err);
};
@@ -655,38 +651,22 @@ async function once(emitter, name, options = {}) {
emitter.removeListener('error', errorListener);
}
if (signal != null) {
- eventTargetAgnosticRemoveListener(
- signal,
- 'abort',
- abortListener,
- { once: true });
+ eventTargetAgnosticRemoveListener(signal, 'abort', abortListener);
}
resolve(args);
};
eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });
- if (name !== 'error') {
- addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });
+ if (name !== 'error' && typeof emitter.once === 'function') {
+ emitter.once('error', errorListener);
}
function abortListener() {
- if (typeof emitter.removeListener === 'function') {
- emitter.removeListener(name, resolver);
- emitter.removeListener('error', errorListener);
- } else {
- eventTargetAgnosticRemoveListener(
- emitter,
- name,
- resolver,
- { once: true });
- eventTargetAgnosticRemoveListener(
- emitter,
- 'error',
- errorListener,
- { once: true });
- }
+ eventTargetAgnosticRemoveListener(emitter, name, resolver);
+ eventTargetAgnosticRemoveListener(emitter, 'error', resolver);
reject(lazyDOMException('The operation was aborted', 'AbortError'));
}
if (signal != null) {
- signal.addEventListener('abort', abortListener, { once: true });
+ eventTargetAgnosticAddListener(
+ signal, 'abort', abortListener, { once: true });
}
});
}
@@ -698,12 +678,6 @@ function createIterResult(value, done) {
return { value, done };
}
-function addErrorHandlerIfEventEmitter(emitter, handler, flags) {
- if (typeof emitter.on === 'function') {
- eventTargetAgnosticAddListener(emitter, 'error', handler, flags);
- }
-}
-
function eventTargetAgnosticRemoveListener(emitter, name, listener, flags) {
if (typeof emitter.removeListener === 'function') {
emitter.removeListener(name, listener);
@@ -808,8 +782,8 @@ function on(emitter, event, options) {
}, AsyncIteratorPrototype);
eventTargetAgnosticAddListener(emitter, event, eventHandler);
- if (event !== 'error') {
- addErrorHandlerIfEventEmitter(emitter, errorHandler);
+ if (event !== 'error' && typeof emitter.on === 'function') {
+ emitter.on('error', errorHandler);
}
if (signal) {