事件:'rejectionHandled'
添加于:v1.4.1
参数
promise
<Promise> 迟到的承诺。
每当 Promise
被拒绝并且在 Node.js 事件循环的一圈之后附加了错误处理程序(例如使用
)时,就会发出 promise.catch()
'rejectionHandled'
事件。
Promise
对象之前会在 'unhandledRejection'
事件中发出,但在处理过程中获得了拒绝处理程序。
对于始终可以处理拒绝的Promise
链,没有顶层的概念。由于本质上是异步的,Promise
拒绝可以在未来的时间点处理,可能比发出 'unhandledRejection'
事件所需的事件循环轮次晚得多。
另一种表述方式是,与同步代码中存在未处理异常的ever-growing 列表不同,Promises 可以有未处理拒绝的growing-and-shrinking 列表。
在同步代码中,当未处理的异常列表增加时,会发出 'uncaughtException'
事件。
在异步代码中,当未处理的拒绝列表增加时会发出 'unhandledRejection'
事件,而当未处理的拒绝列表缩小时会发出 'rejectionHandled'
事件。
import process from 'node:process'; const unhandledRejections = new Map(); process.on('unhandledRejection', (reason, promise) => { unhandledRejections.set(promise, reason); }); process.on('rejectionHandled', (promise) => { unhandledRejections.delete(promise); });
const process = require('node:process'); const unhandledRejections = new Map(); process.on('unhandledRejection', (reason, promise) => { unhandledRejections.set(promise, reason); }); process.on('rejectionHandled', (promise) => { unhandledRejections.delete(promise); });
在此示例中,unhandledRejections
Map
将随着时间的推移而增长和缩小,反映开始未处理然后处理的拒绝。可以定期在错误日志中记录此类错误(这可能是long-running 应用程序的最佳选择)或在进程退出时(这可能对脚本最方便)。
相关用法
- Node.js Http2Session 'remoteSettings'事件用法及代码示例
- Node.js tls.Server 'resumeSession'事件用法及代码示例
- Node.js ClientHttp2Stream 'response'事件用法及代码示例
- Node.js InterfaceConstructor 'resume'事件用法及代码示例
- Node.js tty.WriteStream 'resize'事件用法及代码示例
- Node.js stream.Readable 'readable'事件用法及代码示例
- Node.js REPLServer 'reset'事件用法及代码示例
- Node.js tls.Server 'keylog'事件用法及代码示例
- Node.js http.Server 'clientError'事件用法及代码示例
- Node.js cluste 'disconnect'事件用法及代码示例
- Node.js proces 'exit'事件用法及代码示例
- Node.js stream.Writable 'pipe'事件用法及代码示例
- Node.js stream.Readable 'end'事件用法及代码示例
- Node.js cluste 'fork'事件用法及代码示例
- Node.js stream.Writable 'unpipe'事件用法及代码示例
- Node.js Worker 'listening'事件用法及代码示例
- Node.js InterfaceConstructor 'pause'事件用法及代码示例
- Node.js fs.FSWatcher 'change'事件用法及代码示例
- Node.js stream.Readable 'data'事件用法及代码示例
- Node.js http.ClientRequest 'connect'事件用法及代码示例
- Node.js proces 'uncaughtException'事件用法及代码示例
- Node.js Http2Session 'localSettings'事件用法及代码示例
- Node.js REPLServer 'exit'事件用法及代码示例
- Node.js cluste 'online'事件用法及代码示例
- Node.js tls.TLSSocket 'session'事件用法及代码示例
注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 'rejectionHandled'事件。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。