Skip to content

Commit 81e3bca

Browse files
pd4d10targos
authored andcommitted
process: fix promise catching
Fixes: #30953 PR-URL: #30957 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Anatoli Papirovski <apapirovski@mac.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: David Carlier <devnexen@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: James M Snell <jasnell@gmail.com>
1 parent 437b6d5 commit 81e3bca

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

lib/internal/process/promises.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,8 @@ function handledRejection(promise) {
125125
return;
126126
}
127127
}
128-
setHasRejectionToWarn(false);
128+
if (maybeUnhandledPromises.size === 0 && asyncHandledRejections.length === 0)
129+
setHasRejectionToWarn(false);
129130
}
130131

131132
const unhandledRejectionErrName = 'UnhandledPromiseRejectionWarning';

test/parallel/test-promises-unhandled-rejections.js

+12
Original file line numberDiff line numberDiff line change
@@ -718,3 +718,15 @@ asyncTest(
718718
let timer = setTimeout(common.mustNotCall(), 10000);
719719
},
720720
);
721+
722+
// https://github.com/nodejs/node/issues/30953
723+
asyncTest(
724+
'Catching a promise should not take effect on previous promises',
725+
function(done) {
726+
onUnhandledSucceed(done, function(reason, promise) {
727+
assert.strictEqual(reason, '1');
728+
});
729+
Promise.reject('1');
730+
Promise.reject('2').catch(function() {});
731+
}
732+
);

0 commit comments

Comments
 (0)