Смущает метод readline для метода () Node.js

Я смущен некоторым простым поведением, которое я вижу изreadline on() метод.

У меня есть файл с именемsmall.csv который выглядит так:

Date,Close
2015-11-12,2045.97
2015-11-11,2075.00
2015-11-10,2081.72
2015-11-09,2078.58

Я написал этот скрипт:

my.js

var rl = require('readline').createInterface({
  input: require('fs').createReadStream('small.csv')
});

global.myarray = [];
rl.on('line', function (line) {
  console.log('Line from file:', line);
  global.myarray.push(line);
});

console.log(global.myarray);
// done

Выход скрипта:

dan@nia111:~/d1d2p $ 
dan@nia111:~/d1d2p $ node -v
v5.0.0
dan@nia111:~/d1d2p $ 
dan@nia111:~/d1d2p $ 
dan@nia111:~/d1d2p $ node my.js
[]
Line from file: Date,Close
Line from file: 2015-11-12,2045.97
Line from file: 2015-11-11,2075.00
Line from file: 2015-11-10,2081.72
Line from file: 2015-11-09,2078.58
dan@nia111:~/d1d2p $ 
dan@nia111:~/d1d2p $ 

Я хочу улучшить сценарий, чтобы он заполнялglobal.myarray а не оставлять его пустым.

Когда я прохожу сценарий сnode-debug, похоже, чтоglobal.myarray наполняет, но я думаю, что это иллюзия.

Также, когда я бегуnode my.js похоже, чтоconsole.log(global.myarray);

бежит раньшеsmall.csv читается

Поэтому мне, наверное, нужно понять какой-то асинхронный механизм на работе здесь.

Следующий вопрос может быть легким для тех, кто понимаетreadline Что ж.

Но я был бы рад получить ответ на этот вопрос:

Как улучшитьmy.js так оно заполняетglobal.myarray а не оставить его пустым?

Ответы на вопрос(1)

Ваш ответ на вопрос