@timokins

Как лучше обозначить последний обход цикла?

Есть функция, которая принимает на вход путь к файлу и callback,
сама функция асинхронно читает файл по строкам и вызывает callback с текущей строкой и значением о завершении чтения.

Как можно улучшить передачу информации о последней строке без вызова callback с пустой строкой?

простой пример для наглядности:
const fs = require('fs');
const readline = require('readline');

async function read(filepath, callback) {
  const fileStream = fs.createReadStream(filepath);

  const rl = readline.createInterface({
    input: fileStream,
    crlfDelay: Infinity
  });

  for await (const line of rl) {
    await callback(line, false);
  }

  // ?????????????????
  await callback(null, true);
}

read('./hello.json', (line, done) => {
  console.log(line, done);
});


пока на ум приходит создать очередь из строк и при чтение отдавать не текущую строку, а предыдущую, и тогда уже на последней строке я буду знать, что она последняя, но дополнительный вызов callback после цикла сохранится

существуют ли более подходящие решения, чтобы понимать, что последняя строка - последняя?
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы