JavaScript 如何创建全局的Promise拒绝处理程序

JavaScript 如何创建全局的Promise拒绝处理程序

在本文中,我们首先将尝试理解如何创建一个被拒绝的Promise,然后我们将看到如何创建一个全局的Promise拒绝处理程序,它将尝试(某种方式)处理之前在JavaScript中创建的被拒绝的Promise。

首先,让我们尝试理解如何使用以下受启发的语法在JavaScript中创建一个(带有被拒绝状态的)Promise:

语法:

new Promise ((resolve, reject) => {
    reject ("Some rejection message....")
})

现在让我们来看以下示例,它将使用上述语法创建一个被拒绝的promise:

示例1: 在这个示例中,我们将尝试创建一个被拒绝的promise,它将尝试输出一些结果(显然是拒绝的消息本身)。

Javascript

let new_rejected_promise = new Promise((resolve, reject) => { 
    reject("Something went wrong!!!...."); 
}); 
  
console.log(new_rejected_promise);

输出:

JavaScript 如何创建全局的Promise拒绝处理程序

由于在这段代码中,我们没有处理被拒绝的Promise,这是将输出显示在浏览器控制台的唯一原因。

现在是时候看一下下面的示例了,它将帮助我们在JavaScript中创建一个全局Promise拒绝处理程序。

示例2: 在这个示例中,我们将尝试创建一个全局promise拒绝处理程序(以方法的形式),并在该方法中将它分配给一个新的window对象的属性,即 window.onunhandledrejection。 通过使用这个属性,我们将能够一次性捕获所有被拒绝的promise消息,前提是我们没有使用catch()方法来捕获它们。

Javascript

let RejectionHandlerGlobally = (event) => { 
    console.log("Promise Rejection reason: ", event.reason); 
}; 
  
window.onunhandledrejection = RejectionHandlerGlobally; 
  
let new_promise = new Promise((resolve, reject) => { 
    reject("Something went wrong!!..."); 
}); 
  
new_promise.then(() => { 
    console.log("GeeksforGeeks"); 
});

输出结果:

JavaScript 如何创建全局的Promise拒绝处理程序

注意: 尽管在上面的代码中我们提供了全局的promise拒绝处理器方法,但是在输出中我们仍然遇到了一个错误消息(显示为红色),因此强烈建议我们在任何可能的地方都应该使用catch()方法。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程