TGViewer
Node.js Recipes Node.js Recipes @node_recipes · 3.1K subscribers
Post #535 2.31K
Що таке AsyncIterator?

AsyncIterator в JavaScript - це інтерфейс, який дозволяє робити асинхронний перебір колекцій. Він поєднує два інтерфейси JavaScript - Iterator і AsyncIterable - щоб створити об'єкт, який можна використовувати для асинхронного перебору елементів колекції. Це дозволяє писати код, який може асинхронно обробляти дані по одному елементу за раз, не створюючи зайву оперативну пам'ять чи блокуючи дані запити. Для використання AsyncIterator, ви повинні використовувати конструкцію for await...of, яка дозволяє асинхронно обробляти елементи колекції.

Один з прикладів використання AsyncIterator в Node.js - це асинхронне оброблення багатьох файлів. Наприклад, якщо у вас є кілька CSV-файлів, які ви хочете пострічати і обробити їх дані по одному файлу за раз, ви можете використовувати AsyncIterator для цього. Наступний приклад показує, як це може виглядати:

const fs = require('fs');
const path = require('path');

async function processCSVFiles() {
 // Створюємо масив з шляхами до файлів CSV
 const csvFiles = [
  path.join(__dirname, 'file1.csv'),
  path.join(__dirname, 'file2.csv'),
  path.join(__dirname, 'file3.csv')
 ];

 // Створюємо AsyncIterator з масиву файлів
 const csvFilesIterator = csvFiles[Symbol.asyncIterator]();
 // Використовуємо конструкцію for await...of для асинхронного перебору файлів
 for await (const csvFile of csvFilesIterator) {
  // Читаємо файл CSV
  const csvData = await fs.promises.readFile(csvFile, 'utf-8');
  // Обробляємо дані файлу CSV
  // ...
 }
}

processCSVFiles();

У цьому прикладі, ми створюємо масив з шляхами до файлів CSV, з якого створюємо AsyncIterator, використовуючи метод Symbol.asyncIterator. Потім ми використовуємо конструкцію for await...of для асинхронного перебору файлів CSV і читаємо їх дані за допомогою методу fs.promises.readFile. Цей код буде асинхронно обробляти кожен файл по одному, не блокуючи інші запити до сервера. Після обробки кожного файлу, цей код буде очікувати наступний запит до сервера, щоб продовжити обробку файлів.

Цей текст був вступом до новини, що контент згенерований за допомогою ChatGPT заборонен на Stack Overflow. #news
  • 👍 32
  • 😁 7
  • ❤ 5
  • 💩 1
More from @node_recipes
  1. Jan 5, 2026По всьому світу проходять Cursor Meetups, де локальні спільноти діляться досвідом використ…
  2. Jan 5, 2026Думки на вихідних: Full Stack Learning Подивився останнє відео Сергія Немчинського про фул…
  3. Dec 31, 2025Залишаються лічені години 2025-го. І будьмо чесними: сам перехід на 2026-й нічого автомати…
  4. Dec 25, 2025Моє відкриття 2025 року, як доповідача, це Napkin.ai. На малюнку приклад того, як Napkin г…
  5. Dec 23, 2025А ось й ChatGPT додав 2025 review feature. Авжеж в мене half coded Nest.js app, як ще :)
  6. Dec 23, 2025Моє технічне відкриття 2025 року — centrifugal.dev У 2025-му я багато працював із реальним…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →