Skip to content

Commit 332ce94

Browse files
committed
process: runtime deprecate multipleResolves
1 parent cde35ea commit 332ce94

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

lib/internal/process/promises.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ const {
2020
setPromiseRejectCallback
2121
} = internalBinding('task_queue');
2222

23+
const { deprecate } = require('internal/util');
24+
2325
const {
2426
noSideEffectsToString,
2527
triggerUncaughtException
@@ -124,11 +126,18 @@ function promiseRejectHandler(type, promise, reason) {
124126
}
125127
}
126128

129+
const multipleResolvesDeprecate = deprecate(
130+
() => {},
131+
'The multipleResolves event has been derpecated.',
132+
'DEPXXXX'
133+
);
127134
function resolveError(type, promise, reason) {
128135
// We have to wrap this in a next tick. Otherwise the error could be caught by
129136
// the executed promise.
130137
process.nextTick(() => {
131-
process.emit('multipleResolves', type, promise, reason);
138+
if (process.emit('multipleResolves', type, promise, reason)) {
139+
multipleResolvesDeprecate();
140+
}
132141
});
133142
}
134143

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { expectWarning, mustCall } from '../common/index.mjs';
2+
3+
expectWarning(
4+
'DeprecationWarning',
5+
'The multipleResolves event has been derpecated.',
6+
'DEPXXXX',
7+
);
8+
9+
process.on('multipleResolves', mustCall());
10+
11+
new Promise((resolve) => {
12+
resolve();
13+
resolve();
14+
});

0 commit comments

Comments
 (0)