当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaScript Symbol.asyncIterator属性用法及代码示例


Symbol.asyncIterator 属性用于将对象设置为异步可迭代对象。可以使用 for await...of 循环迭代此对象的可迭代属性。

异步可迭代对象是任何返回一个函数的对象,该函数为其 Symbol.asyncIterator 属性生成一个 AsyncIterator。

Symbol.asyncIterator 符号是一个 内置 符号,用于访问对象的 @@asyncIterator 方法。

注意:要使对象成为异步可迭代对象,它必须具有 Symbol.asyncIterator 键。

Symbol.asyncIterator 的属性属性
Writableno
Enumerableno
Configurableno

上述属性的示例代码如下:



范例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



相关用法


注:本文由纯净天空筛选整理自surbhityagi15大神的英文原创作品 JavaScript Symbol.asyncIterator Property。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。