JavaScript 如何异步生成器函数中抛出错误
在本文中,我们将尝试通过理论和编码示例来理解如何在JavaScript中的同步(简称为“异步”)生成器函数中抛出错误。
让我们首先看一下以下部分,其中将展示声明异步生成器函数的语法。
语法:
async function * function_name () {
...
}
我们将学习关于异步生成器函数声明的内容,并了解如何在异步生成器函数中抛出错误。
示例1: 在这个示例中,我们将使用*
关键字来抛出一个错误,使用一个包含用户根据需求传入的错误消息的错误对象,然后我们将使用catch语句来捕获这个错误。
Javascript
<script>
async function* generator() {
throw new Error("Error thrown from an "
+ "async generator function....!!!");
}
let iterator = generator();
iterator
.next()
.then((result) => console.log(result.value))
.catch((error) => console.log(error.message));
</script>
输出:
Error thrown from an async generator function....!!!
示例2: 在这个示例中,我们将使用 yield *
关键字,通过它我们将在代码的后半部分捕获错误。此外,我们将声明一个状态为rejected的promise,其中包含在reject()方法中的错误消息,然后我们将使用catch语句捕获它。
JavaScript
<script>
async function* generator() {
yield new Promise((resolve, reject) => {
reject("Error thrown from an async "
+ "generator function....!!!");
});
}
let iterator = generator();
iterator
.next()
.then((result) => console.log(result.value))
.catch((error) => console.log(error));
</script>
输出:
Error thrown from an async generator function....!!!