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

260
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

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

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

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

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

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

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

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

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

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

212