事件:'unhandledRejection'
曆史
版本 | 變化 |
---|---|
v7.0.0 | 不處理 |
v6.6.0 | 未處理的 |
v1.4.1 | 添加於:v1.4.1 |
參數
每當 Promise
被拒絕並且在事件循環的一個輪次中沒有錯誤處理程序附加到 Promise 時,就會發出 'unhandledRejection'
事件。使用 Promises 進行編程時,異常被封裝為 "rejected promises"。可以使用
捕獲和處理拒絕,並通過promise.catch()
Promise
鏈傳播。 'unhandledRejection'
事件對於檢測和跟蹤被拒絕但尚未處理的承諾很有用。
import process from 'node:process'; process.on('unhandledRejection', (reason, promise) => { console.log('Unhandled Rejection at:', promise, 'reason:', reason); // Application specific logging, throwing an error, or other logic here }); somePromise.then((res) => { return reportToUser(JSON.pasre(res)); // Note the typo (`pasre`) }); // No `.catch()` or `.then()`
const process = require('node:process'); process.on('unhandledRejection', (reason, promise) => { console.log('Unhandled Rejection at:', promise, 'reason:', reason); // Application specific logging, throwing an error, or other logic here }); somePromise.then((res) => { return reportToUser(JSON.pasre(res)); // Note the typo (`pasre`) }); // No `.catch()` or `.then()`
以下也將觸發 'unhandledRejection'
事件被發出:
import process from 'node:process'; function SomeResource() { // Initially set the loaded status to a rejected promise this.loaded = Promise.reject(new Error('Resource not yet loaded!')); } const resource = new SomeResource(); // no .catch or .then on resource.loaded for at least a turn
const process = require('node:process'); function SomeResource() { // Initially set the loaded status to a rejected promise this.loaded = Promise.reject(new Error('Resource not yet loaded!')); } const resource = new SomeResource(); // no .catch or .then on resource.loaded for at least a turn
在此示例情況下,可以將拒絕作為開發人員錯誤進行跟蹤,這通常是其他 'unhandledRejection'
事件的情況。為了解決此類故障,可以將非操作
處理程序附加到 .catch(() => { })
resource.loaded
,這將阻止發出 'unhandledRejection'
事件。
相關用法
- Node.js stream.Writable 'unpipe'事件用法及代碼示例
- Node.js proces 'uncaughtException'事件用法及代碼示例
- Node.js proces 'uncaughtExceptionMonitor'事件用法及代碼示例
- Node.js http.ClientRequest 'upgrade'事件用法及代碼示例
- 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 Http2Session 'remoteSettings'事件用法及代碼示例
- Node.js Worker 'listening'事件用法及代碼示例
- Node.js tls.Server 'resumeSession'事件用法及代碼示例
- Node.js InterfaceConstructor 'pause'事件用法及代碼示例
- Node.js fs.FSWatcher 'change'事件用法及代碼示例
- Node.js stream.Readable 'data'事件用法及代碼示例
- Node.js http.ClientRequest 'connect'事件用法及代碼示例
- Node.js Http2Session 'localSettings'事件用法及代碼示例
- Node.js REPLServer 'exit'事件用法及代碼示例
- Node.js cluste 'online'事件用法及代碼示例
- Node.js tls.TLSSocket 'session'事件用法及代碼示例
- Node.js Worker 'exit'事件用法及代碼示例
- Node.js cluste 'exit'事件用法及代碼示例
- Node.js Http2Stream 'trailers'事件用法及代碼示例
注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 'unhandledRejection'事件。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。