' 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