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