AsyncIterator.prototype[Symbol.asyncIterator]()

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流浏览器均已支持。

[Symbol.asyncIterator]() 方法是 AsyncIterator 实例的成员,它实现了 异步可迭代协议,并允许内置异步迭代器被期望异步可迭代对象的语法(例如 for await...of 循环)所使用。它返回 this 的值,即异步迭代器对象本身。

语法

js
asyncIterator[Symbol.asyncIterator]()

参数

无。

返回值

this 的值,即异步迭代器对象本身。

示例

使用 for await...of 循环进行迭代

请注意,您很少需要直接调用此方法。[Symbol.asyncIterator]() 方法的存在使得所有内置异步迭代器都成为 异步可迭代对象,并且像 for await...of 循环这样的迭代语法会自动调用此方法来获取要遍历的异步迭代器。

js
const asyncIterator = (async function* () {
  yield 1;
  yield 2;
  yield 3;
})();
(async () => {
  for await (const value of asyncIterator) {
    console.log(value);
  }
})();
// Logs: 1, 2, 3

规范

规范
ECMAScript® 2026 语言规范
# sec-asynciteratorprototype-asynciterator

浏览器兼容性

另见