Skip to content

Commit c8a0404

Browse files
committed
events: propagate abortsignal reason in new AbortError ctor in events
Signed-off-by: James M Snell <jasnell@gmail.com> PR-URL: nodejs#41008 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
1 parent 5401e96 commit c8a0404

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

lib/events.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -810,7 +810,7 @@ async function once(emitter, name, options = {}) {
810810
const signal = options?.signal;
811811
validateAbortSignal(signal, 'options.signal');
812812
if (signal?.aborted)
813-
throw new AbortError();
813+
throw new AbortError(undefined, { cause: signal?.reason });
814814
return new Promise((resolve, reject) => {
815815
const errorListener = (err) => {
816816
emitter.removeListener(name, resolver);
@@ -835,7 +835,7 @@ async function once(emitter, name, options = {}) {
835835
function abortListener() {
836836
eventTargetAgnosticRemoveListener(emitter, name, resolver);
837837
eventTargetAgnosticRemoveListener(emitter, 'error', errorListener);
838-
reject(new AbortError());
838+
reject(new AbortError(undefined, { cause: signal?.reason }));
839839
}
840840
if (signal != null) {
841841
eventTargetAgnosticAddListener(
@@ -888,7 +888,7 @@ function on(emitter, event, options) {
888888
const signal = options?.signal;
889889
validateAbortSignal(signal, 'options.signal');
890890
if (signal?.aborted)
891-
throw new AbortError();
891+
throw new AbortError(undefined, { cause: signal?.reason });
892892

893893
const unconsumedEvents = [];
894894
const unconsumedPromises = [];
@@ -976,7 +976,7 @@ function on(emitter, event, options) {
976976
return iterator;
977977

978978
function abortListener() {
979-
errorHandler(new AbortError());
979+
errorHandler(new AbortError(undefined, { cause: signal?.reason }));
980980
}
981981

982982
function eventHandler(...args) {

0 commit comments

Comments
 (0)