process: deprecate multipleResolves

Deprecate the process multipleResolves event to detect when a promise is
resolved more than once because it never really worked.

Fixes: https://github.com/nodejs/node/issues/41554

PR-URL: https://github.com/nodejs/node/pull/41872
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Reviewed-By: Mestery <mestery@protonmail.com>
This commit is contained in:
Benjamin Gruenbaum 2022-02-08 16:24:59 +02:00 committed by GitHub
parent cde35ea51b
commit 1f17592116
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 0 deletions

View File

@ -3070,6 +3070,20 @@ Type: End-of-Life
This error code was removed due to adding more confusion to
the errors used for value type validation.
### DEPXXXX: `process.on('multipleResolves', handler)`
<!-- YAML
changes:
- version: REPLACEME
pr-url: https://github.com/nodejs/node/pull/41872
description: Documentation-only deprecation.
-->
Type: Documentation-only
This event was deprecated because it did not work with V8 promise combinators
which diminished its usefulness.
[Legacy URL API]: url.md#legacy-url-api
[NIST SP 800-38D]: https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf
[RFC 6066]: https://tools.ietf.org/html/rfc6066#section-3

View File

@ -181,8 +181,11 @@ See [Advanced serialization for `child_process`][] for more details.
<!-- YAML
added: v10.12.0
deprecated: REPLACEME
-->
> Stability: 0 - Deprecated
* `type` {string} The resolution type. One of `'resolve'` or `'reject'`.
* `promise` {Promise} The promise that resolved or rejected more than once.
* `value` {any} The value with which the promise was either resolved or
@ -200,6 +203,9 @@ This is useful for tracking potential errors in an application while using the
the occurrence of this event does not necessarily indicate an error. For
example, [`Promise.race()`][] can trigger a `'multipleResolves'` event.
Because of the unreliability of the event in cases like the
[`Promise.race()`][] example above it has been deprecated.
```mjs
import process from 'process';