Javascript 数组中的内置Symbol.asyncIterator

Javascript 数组中的内置Symbol.asyncIterator,javascript,for-loop,asynchronous,Javascript,For Loop,Asynchronous,根据MDN Web文档: 目前没有默认设置了[Symbol.asyncIterator]键的内置JavaScript对象 我的问题是这是怎么起作用的: function promises() { return [ new Promise(x => setTimeout(() => x(1), 1000)), new Promise(x => setTimeout(() => x(2), 2000)), new Pro

根据MDN Web文档:

目前没有默认设置了[Symbol.asyncIterator]键的内置JavaScript对象

我的问题是这是怎么起作用的:

function promises() {
    return [
        new Promise(x => setTimeout(() => x(1), 1000)),
        new Promise(x => setTimeout(() => x(2), 2000)),
        new Promise(x => setTimeout(() => x(3), 3000)),
    ]
}

for await (x of promises()) console.log(x) 
MDN还指出

for await…of
语句创建了一个循环,该循环迭代异步可重用对象以及同步可重用对象,包括:内置字符串、数组、类似数组的对象(例如参数或节点列表)、TypedArray、Map、Set和用户定义的异步/同步可重用对象(emphasis mine)


for await
又回到了同步迭代器的错误,我没有注意到默认情况下“默认”
这两个词没有区别默认情况下“asyncIterator”没有附带对象,但是如果使用“for await”,则创建了“asyncIterator”。@RafiHenig-哦,我看不到在哪里有文档,因为“asyncIterator”“必须使用,才能运行上述代码,如果默认情况下不存在,则必须以某种方式创建。