这篇翻译不完整。请帮忙从英语翻译这篇文章

The for await...of 语句在异步或者同步可迭代对象上(包括 StringArrayArray-like 对象(比如arguments 或者NodeList),TypedArrayMap, Set和其他对象等等)创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句

语法

for await (variable of iterable) {
  statement
}
variable
在每次迭代中,将不同属性的值分配给变量。
iterable
被迭代枚举其属性的对象。

迭代异步可迭代对象

你还可以迭代一个明确实现异步迭代协议的对象:

var asyncIterable = {
  [Symbol.asyncIterator]() {
    return {
      i: 0,
      next() {
        if (this.i < 3) {
          return Promise.resolve({ value: this.i++, done: false });
        }

        return Promise.resolve({ done: true });
      }
    };
  }
};

(async function() {
   for await (num of asyncIterable) {
     console.log(num);
   }
})();

// 0
// 1
// 2

迭代异步生成器 

异步生成器已经实现了异步迭代器协议, 所以可以用 for await...of循环。

async function* asyncGenerator() {
  var i = 0;
  while (i < 3) {
    yield i++;
  }
}

(async function() {
  for await (num of asyncGenerator()) {
    console.log(num);
  }
})();
// 0
// 1
// 2

规范

Specification Status Comment
ECMAScript Latest Draft (ECMA-262)
ECMAScript Language: The for-in, for-of, and for-await-of Statements
Draft  

浏览器兼容

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
for await...of
Experimental
Chrome Full support 63Edge No support NoFirefox Full support 57IE No support NoOpera Full support 50Safari Full support 11WebView Android Full support 63Chrome Android Full support 63Edge Mobile No support NoFirefox Android Full support 57Opera Android Full support 46Safari iOS ? Samsung Internet Android Full support Yesnodejs Full support 10.0.0
Full support 10.0.0
No support 8.10.0 — 10.0.0
Disabled
Disabled From version 8.10.0 until version 10.0.0 (exclusive): this feature is behind the --harmony-async-iteration runtime flag.

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.
User must explicitly enable this feature.
User must explicitly enable this feature.

相关链接

文档标签和贡献者

此页面的贡献者: mdnwebdocs-bot, thereAnana
最后编辑者: mdnwebdocs-bot,