JavaScript中“ for ... await ... of”语句的重要性是什么?

等待...的

' for await ... of '语句创建一个循环,该循环遍历异步 对象并同步 对象,例如数组,类似数组的对象,映射集等。

语法

for await (variable of iterable) {
   statement
}

示例

在下面的示例中,“ for await ... of ”语句用于以异步格式循环普通数组,并且整数从1到5显示,如输出所示。

<html>
<body>
<script>
   var txt = "";
   const array = [1,2,3,4,5];
   async function test() {
      for await (const p of array) {
         var txt = p + "</br>";
         document.write(txt);
      }
   }
   test();
</script>
</body>
</html>

输出结果

1
2
3
4
5


要在循环中调用异步 函数,将使用新的Symbol“ Symbol.asyncIterator ”和“ for-await ... of ”构造。最重要的是,“ for-await ... of ”在循环异步可迭代对象方面发挥了重要作用。   

示例

在下面的示例中,使用“ for await ... of ”对异步iterable进行迭代,显示了1到5的整数。

<html>
<body>
<script>
   var txt = "";
   var async = {
      [Symbol.asyncIterator]() {
         return {
            i: 1,
            next() {
               if (this.i < 6) {
                  return Promise.resolve({ value: this.i++, done : false});
               }
            }
         };
      }
   };
   async function test() {
      for await (let p of async) {
         txt = p + "</br>"
         document.write(txt);
      }
   }
   test();
</script>
</body>
</html>

输出结果

1
2
3
4
5