Я использую в своем проекте функцию:
function readStream(file) {
console.log("starte lesen");
const readStream = fs.createReadStream(file);
readStream.setEncoding('utf8');
return new Promise((resolve, reject) => {
let data = "";
readStream.on("data", chunk => data += chunk);
readStream.on("end", () => {resolve(data);});
readStream.on("error", error => reject(error));
});
}
Он будет читать файл xml с длиной строки около 800. Если я добавлю:
readStream.on("end", () => {console.log(data); resolve(data);});
, тогда xml данные завершены. Все хорошо. Но если я сейчас вызываю readStream
из другой функции:
const dpath = path.resolve(__basedir, 'tests/downloads', 'test.xml');
let xml = await readStream(dpath);
console.log(xml);
, тогда данные XML обрезаются. Я думаю, что 800 строк ничего особенного. Так что может случиться, что данные обрезаются в этой позиции, но не в самой функции.