事件:'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'事件。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。