Symbol.asyncIterator 属性用于将对象设置为异步可迭代对象。可以使用 for await...of 循环迭代此对象的可迭代属性。
异步可迭代对象是任何返回一个函数的对象,该函数为其 Symbol.asyncIterator 属性生成一个 AsyncIterator。
Symbol.asyncIterator 符号是一个 内置 符号,用于访问对象的 @@asyncIterator 方法。
注意:要使对象成为异步可迭代对象,它必须具有 Symbol.asyncIterator 键。Symbol.asyncIterator 的属性属性 Writable no Enumerable no Configurable no
上述属性的示例代码如下:
范例1:
Javascript
<script>
// JavaScript program to demonstrate
// the Symbol.asyncIterator Property
// Defining an async iterable
const GFG = {
// Setting the [Symbol.asyncIterator]
// property on the object
async*[Symbol.asyncIterator]() {
// Using yield keyword to pause
// and resume generator function
let i = 0;
while (i < 10) {
if (i % 3 == 0) {
yield i;
}
i++;
}
}
};
(async () => {
// Iterate over the async iterable
// object i.e. myAsyncIterable
// using for await... loop
for await (const x of GFG) {
document.write(x + "<br>");
}
})();
</script>
输出:
0 3 6 9
范例2:
Javascript
<script>
// JavaScript program to demonstrate
// the Symbol.asyncIterator Property
// Defining an async iterable
const myAsyncIterable = {
// Setting the [Symbol.asyncIterator]
// property on the object
async*[Symbol.asyncIterator]() {
let i = 0;
while (i < 5) {
// Using yield keyword to
// yield values of i
yield i++;
}
}
};
(async () => {
// Iterate over the async iterable
// object i.e. myAsyncIterable
// using for await... loop
for await (const num of myAsyncIterable) {
document.write(num + "<br>");
}
})();
</script>
输出
0 1 2 3 4
浏览器支持:JavaScript Symbol.asyncIterator 属性支持的浏览器如下:
- 谷歌浏览器
- Firefox
- Edge
- Opera
- Safari
相关用法
- Javascript Math.LOG10E用法及代码示例
- Javascript Math.LOG2E用法及代码示例
- Javascript Math.LN10用法及代码示例
- Javascript Math.SQRT1_2用法及代码示例
- Javascript Math.PI用法及代码示例
- Javascript Math.SQRT2用法及代码示例
注:本文由纯净天空筛选整理自surbhityagi15大神的英文原创作品 JavaScript Symbol.asyncIterator Property。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。