Перейти к основному содержимому
Об авторе
Проекты
Знания
Знания/JavaScript/async-iterators

Что такое 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, чтения файлов по частям
  • Главная
  • Об авторе
  • Проекты
  • Знания
Логотип nKolmykov