Как создать запись массива для каждой строки текстового файла, используя node.js - PullRequest
1 голос
/ 26 января 2020

У меня проблемы с созданием записи массива из каждой строки текстового файла в node.js

Мой массив называется "temp". Я могу console.log каждой строки в следующем коде:

var temp = [];
const readline = require('readline');
const fs = require('fs');
let rl = readline.createInterface({
    input: fs.createReadStream('./lib/Sphinx.txt')
});
let line_no = 0;
rl.on('line', function(line) {
    line_no++;
    console.log(line); //this successfully prints out every line
    temp.push(line); //this would ideally create a new array entry for each line

});

Однако, когда я запускаю этот код:

console.log(temp.length)
//returns 0
console.log(temp.size)
//returns undefined

Асинхронные вызовы функций вызывают это. В результате я не могу получить доступ к значениям массива вне самой функции, что является единственной целью.

Помощь приветствуется. Спасибо, Накуль

1 Ответ

1 голос
/ 26 января 2020
rl.on('line', function (line) {
    line_no++;
    console.log(line); //this successfully prints out every line
    temp.push(line); //this would ideally create a new array entry for each line
}).on('close', function (line) {
    // EOF
    console.log(temp);
    console.log(temp.length);
});;
  • Запись console.log(temp.length) вместо console.log(temp.size), которая должна работать

  • Вы должны получить полный массив в конце вашей строки за строкой чтения , т.е. на close событие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...