事件:'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'事件。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。