JavaScript 使用await处理Promise拒绝并使用catch捕获

JavaScript 使用await处理Promise拒绝并使用catch捕获

在本文中,我们将尝试理解如何在使用await的异步(带有async关键字前缀)函数(或方法)中使用try/catch块处理Promise的拒绝。

语法: 让我们首先快速查看下面的图示语法,我们可以在JavaScript中使用它来创建一个Promise:

let new_promise = new Promise ((resolve, reject) => {
    // do something....
})

让我们看一个快速的示例,说明如何使用上述语法来创建一个promise:

示例 1: 在这个示例中,我们将简单地创建一个promise,该promise将成功解析包含要作为输出或结果打印出来的数据。

JavaScript

<script> 
    let new_promise = new Promise((resolve, reject) => { 
        resolve("GeeksforGeeks....!!"); 
    }); 
  
    console.log("Promise created: " + new_promise); 
    new_promise.then((result) => console.log( 
        "Data inside promise is : " + result)); 
</script>

输出:

Promise created: [object Promise]
Data inside promise is : GeeksforGeeks....!!

现在通过一个示例来分析promise的语法,让我们来看一下下面的示例,这将帮助我们以有效的方式理解我们的问题陈述。

示例2: 在这个示例中,我们将在一个函数(或方法)中创建一个promise,并且我们将该promise设置为拒绝状态(使用reject()方法)。在另一个函数(或方法)中,我们将在try块中调用该方法,并在catch()块中捕获错误。

JavaScript代码

<script> 
    function rejected_promise() { 
        return new Promise((resolve, reject) => { 
            reject(new Error( 
                "This promise is Rejected...")); 
        }); 
    } 
  
    async function displayData() { 
        try { 
            await rejected_promise(); 
        } catch (e) { 
            console.log("Error Message: ", e.message); 
        } 
    } 
  
    displayData(); 
</script>

输出:

Error Message:  This promise is Rejected...

示例3: 在这个示例中,我们将在一个函数中创建一个被拒绝的Promise,创建Promise时我们将使用一个名为setTimeout()的定时器函数,在setTimeout()函数内部我们将传入reject()方法,然后在另一个函数中,我们将创建一个try/catch块,然后打印我们的结果。

JavaScript

<script> 
    function rejected_promise() { 
        return new Promise((resolve, reject) => { 
            setTimeout(() => { 
                reject(new Error( 
                    "This Promise is Rejected...")); 
            }, 1000); 
        }); 
    } 
  
    async function displayData() { 
        try { 
            await rejected_promise(); 
        } catch (error) { 
            console.log("Error Message: ", error.message); 
        } 
    } 
  
    displayData(); 
</script>

输出:

Error Message:  This Promise is Rejected...

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程