Цикл for await...of предназначен для итерирования по асинхронным итерируемым объектам, автоматически ожидая каждое значение перед переходом к следующей итерации. Его можно использовать только внутри async функции.
Symbol.asyncIterator)Promiseasync function processStream(stream) {
for await (const chunk of stream) {
console.log(chunk);
}
}
В этом примере:
stream — это асинхронный итерируемый объект (например, Node.js Readable стрим)chunk автоматически ожидается перед началом следующей итерацииОшибки от отклонённых промисов можно перехватить стандартным блоком try...catch:
async function processStream(stream) {
try {
for await (const chunk of stream) {
console.log(chunk);
}
} catch (error) {
console.error('Stream error:', error);
}
}
for await...of предоставляет чистый, читаемый синтаксис для обработки асинхронных последовательностей, избегая громоздких цепочек Promise или ручного управления итераторами. Особенно хорошо он раскрывается в связке с асинхронными генераторами — для ленивой генерации и потребления данных.
Цикл for await...of можно использовать только с объектами, которые реализуют асинхронный протокол итерации, предоставляя Symbol.asyncIterator.
Новый — ещё не проверен сообществом
Вы