From fd1b47bd1bca978245dd3b0fe42f186d5d80ce1b Mon Sep 17 00:00:00 2001 From: James M Snell Date: Sun, 28 Nov 2021 12:57:58 -0800 Subject: [PATCH] events: propagate abortsignal reason in new AbortError constructor in events Signed-off-by: James M Snell --- lib/events.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/events.js b/lib/events.js index 71776c6e8f6f00..6d838d6d112dd9 100644 --- a/lib/events.js +++ b/lib/events.js @@ -810,7 +810,7 @@ async function once(emitter, name, options = {}) { const signal = options?.signal; validateAbortSignal(signal, 'options.signal'); if (signal?.aborted) - throw new AbortError(); + throw new AbortError(undefined, { cause: signal?.reason }); return new Promise((resolve, reject) => { const errorListener = (err) => { emitter.removeListener(name, resolver); @@ -835,7 +835,7 @@ async function once(emitter, name, options = {}) { function abortListener() { eventTargetAgnosticRemoveListener(emitter, name, resolver); eventTargetAgnosticRemoveListener(emitter, 'error', errorListener); - reject(new AbortError()); + reject(new AbortError(undefined, { cause: signal?.reason })); } if (signal != null) { eventTargetAgnosticAddListener( @@ -888,7 +888,7 @@ function on(emitter, event, options) { const signal = options?.signal; validateAbortSignal(signal, 'options.signal'); if (signal?.aborted) - throw new AbortError(); + throw new AbortError(undefined, { cause: signal?.reason }); const unconsumedEvents = []; const unconsumedPromises = []; @@ -976,7 +976,7 @@ function on(emitter, event, options) { return iterator; function abortListener() { - errorHandler(new AbortError()); + errorHandler(new AbortError(undefined, { cause: signal?.reason })); } function eventHandler(...args) {