JavaScript 异步生成器函数

JavaScript 异步生成器函数

JavaScript异步生成器函数的独特特点是它们支持等待(await)和产出(yield)。它返回的是一个异步迭代器,而不是一个promise或迭代器。

异步生成器函数与JavaScript中的异步函数和生成器函数有所不同。异步迭代器的next()函数始终返回一个promise。

异步生成器和传统生成器之间唯一的区别是异步生成器的next()方法返回一个Promise。使用”for await…”语句可以迭代异步生成器。

语法

以下语法显示了JavaScript函数中的异步生成器。

async function* function_name () {
...
}

示例

以下示例使用javascript中的不同方法和函数。

示例1

在本示例中,您使用throw关键字使用错误对象抛出一个错误。它将包含用户提供的错误消息,然后我们将使用catch语句来修正错误。

<!DOCTYPE html>
<html>
<head>
<title> An async generator in the JavaScript function </title>
</head>
<body>
<h3> An async generator in the JavaScript function </h3>
<b> Please See the Console Tab. </b>
<script>
console.log("Javascript async generator");
async function* generator_function() {
throw new Error("Error thrown in the "
+ " Jaavascript async generator function....!!!");
}
let iterator_var = generator_function();
iterator_var
.next()
.then((results) => console.log(results.value))
.catch((errors) => console.log(errors.message));
</script>
</body>
</html>

输出

图像显示了JavaScript异步生成器的运作和其输出。

JavaScript 异步生成器函数

示例2

在这个示例中,我们将把异步生成器与yield关键字配对使用。使用catch语句,我们首先声明一个被拒绝的promise,并在reject()方法中包含错误语句。

<!DOCTYPE html>
<html>
<head>
<title> An async generator in the JavaScript function </title>
</head>
<body>
<h3> An async generator in the JavaScript function </h3>
<b> Please See the Console Tab. </b>
<script>
console.log("Javascript async generator ");
async function* generator_fun() {
yield new Promise((resolve, reject) => {
reject("Result thrown in the "
+ " Jaavascript async generator function using yeild method....!!!");
});
}
let iterator_var = generator_fun();
iterator_var
.next()
.then((result) => console.log(result.value))
.catch((error) => console.log(error));
</script>
</body>
</html>

输出

该图片展示了JavaScript异步生成器的操作及其输出结果。

JavaScript 异步生成器函数

示例3

在这个示例中,异步生成器函数显示了使用yield和await关键字的用法。

<!DOCTYPE html>
<html>
<head>
<title> An async generator in the JavaScript function </title>
</head>
<body>
<h3> An async generator in the JavaScript function </h3>
<b> Please See the Console Tab. </b>
<script>
console.log("Javascript async generator");
'use strict';
async function* function_data() {
await new Promise(resolve => setTimeout(resolve, 100));
yield 'Hello Student';
console.log('Wecome to Development World');
}
const asyncfunction_data = function_data();
(async () => {
for await (const values of asyncfunction_data) {
console.log(values); // print the input value
}
})();
</script>
</body>
</html>

输出

图片展示了JavaScript异步生成器的运行和输出。

JavaScript 异步生成器函数

示例4

该示例展示了使用操作符和函数显示迭代器值。迭代器显示从开始到结束值的异步生成器函数中的数据。

<!DOCTYPE html>
<html>
<head>
<title> An async generator in the JavaScript function </title>
</head>
<body>
<h3> An async generator in the JavaScript function </h3>
<b> Please See the Console Tab. </b>
<script>
console.log("Javascript async generator");
async function* asyncFunction(start, end) {
for (let y = start; y <= end; y++) {
yield new Promise((resolve, reject) => {
setTimeout(() => {
resolve(y);
}, 100);
});
}
}
(async () => {
let sequence_var = asyncFunction(2, 5);
for await (let num_value of sequence_var) {
console.log(num_value);
}
})();
</script>
</body>
</html>

输出

该图片展示了JavaScript异步生成器的操作和输出。

JavaScript 异步生成器函数

结论

JavaScript异步生成器用于操作多个数据。它在承诺、迭代器和其他方法中被用来以简单的方式管理复杂的功能。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程