Что такое async-итераторы и `for await...of`?
- Async Iterator Protocol — метод
next()возвращаетPromise<{ value, done }> - Async Iterable — объект с методом
[Symbol.asyncIterator]() for await...of— цикл для перебора async iterable:
async function* asyncRange(start, end) {
for (let i = start; i <= end; i++) {
await new Promise(r => setTimeout(r, 100));
yield i;
}
}
for await (const num of asyncRange(1, 3)) console.log(num);
- Используется для: потоков данных, пагинации API, чтения файлов по частям