Есть функция, которая принимает на вход путь к файлу и 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 после цикла сохранится
существуют ли более подходящие решения, чтобы понимать, что последняя строка - последняя?