Node.js некорректно работает колбэк на чтение файла

208
27 мая 2018, 04:10

Почему код (Node.JS), указанный ниже, выдает в консоль только первую строку файла?

var fs = require("fs");
var writeableStream = fs.createWriteStream("hello.txt");
writeableStream.write("Привет мир!");
writeableStream.write("Продолжение записи \n");
writeableStream.end("Завершение записи");
var readableStream = fs.createReadStream("hello.txt", "utf8");
// Эта часть кода выдает только первую строку файла
readableStream.on("data", function(chunk){ 
    console.log(chunk);
});
Answer 1

Запись файла происходит асинхронно и что бы быть точно уверенным, что запись закончилась надо слушать событие close у writableStream.

Вот так всё работает.

var fs = require("fs");
var writeableStream = fs.createWriteStream("hello.txt");
writeableStream.write("Привет мир!");
writeableStream.write("Продолжение записи \n");
writeableStream.end("Завершение записи");
writeableStream.on("close", function() {
    var readableStream = fs.createReadStream("hello.txt", "utf8");
    readableStream.on("data", function(chunk){ 
        console.log(chunk);
    });
});

Что не отменяет того факта, что вы делаете что-то странное.

READ ALSO
Выдвигающееся боковое меню на CSS3

Выдвигающееся боковое меню на CSS3

Выдвигающееся боковое меню на CSS3: http://stylesystemru/test

233
Использование JavaScript в Qt

Использование JavaScript в Qt

Существуют ли такие задачи, когда использование скрипта в Qt прям именно то что нужно? Что весомого дают такие возможности? Не могу осознать...

209
Отображение трека из файла GPX

Отображение трека из файла GPX

Необходимо на карту наносить трек пути из файла GPX, как сделано в примере

180
Как применить стили к такому коду в теге <script>

Как применить стили к такому коду в теге <script>

Требуется представить google-таблицу, как веб-страницу с возможностью использовать стилиЕсть решение, которое позволяет быстро выводить данные

171