Node.js Process未处理的Promise拒绝事件

Node.js Process未处理的Promise拒绝事件

process 是Node.js中的全局对象,用于跟踪和包含特定时间在机器上执行的特定Node.js进程的所有信息。

当一个Promise被拒绝但没有被处理时,会触发 unhandledRejection 事件。NodeJS会在控制台中警告未处理的Promise拒绝,并立即终止进程。NodeJS进程全局对象有一个 unhandledRejection 事件。该事件在未处理的拒绝发生时触发,且没有处理程序来处理它时。

语法:

process.on("unhandledRejection", callbackfunction)
JavaScript

参数: 此方法接受以下两个参数。

  • unhandledRejection: 它是进程中的发射事件的名称。
  • callbackfunction: 它是事件的事件处理程序。

返回类型: 此方法的返回类型为void。

示例1: 注册unhandledRejection监听器的基本示例。

index.js

// The unhandledRejection listener 
process.on('unhandledRejection', error => { 
    console.error('unhandledRejection', error); 
}); 
  
// Reject a promise 
Promise.reject('Invalid password');
JavaScript

使用以下命令运行 index.js 文件:

node index.js
JavaScript

输出:

unhandledRejection Invalid password
JavaScript

示例2: 为了证明当您的链上没有promise拒绝处理程序时,unhandledRejection监听器将只执行。

index.js

// The unhandledRejection listener 
process.on('unhandledRejection', error => { 
    // Won't execute 
    console.error('unhandledRejection', error); 
}); 
  
// Reject a promise 
Promise.reject('Invalid password') 
    .catch(err => console.error(err))
JavaScript

使用以下命令运行 index.js 文件:

node index.js
JavaScript

输出:

Invalid password
JavaScript

注意: 如果您使用监听器或消费函数处理未处理的拒绝( unhandledRejection ),则默认的警告信息将不会打印到控制台(如上例中的 UnhandledPromiseRejectionWarning )。

参考: https://nodejs.org/api/process.html#process_event_unhandledrejection

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册