Встроенный Symbol.asyncIterator в массиве - PullRequest
0 голосов
/ 05 октября 2019

Согласно MDN Web Docs:

В настоящее время нет встроенных объектов JavaScript, для которых по умолчанию установлен ключ [Symbol.asyncIterator].

Myвопрос в том, как это работает:

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) 

1 Ответ

1 голос
/ 05 октября 2019

MDN также утверждает, что

Оператор for await...of создает цикл, повторяющийся по асинхронным итерируемым объектам , а также по итерируемым при синхронизации, в том числе: встроенная строка, массивОбъекты, подобные массиву (например, аргументы или NodeList), TypedArray, Map, Set и пользовательские асинхронные / синхронизируемые итерации - MDN (выделено мной)

...