當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。