我试图从文本文件读入并将它们存储在我的Lease类的数组中。如果我从最终循环内部调用console.log(),它将在每个iterration的当前状态下打印循环。但是如果我在循环外部移动console.log,它会打印一个空数组。
const readline = require('readline'),
fs = require('fs');
function Lease(renter, unit) {
this.unit = unit;
this.renter = renter;
}
var list = [];
var rl = readline.createInterface({
input: fs.createReadStream('input.txt'),
output: process.stdout,
terminal: false
});
rl.on('line', function(line) {
var values = line.split(' - ');
list.push(new Lease(values[0], values[1]));
console.log(list);
});
const readline = require('readline'),
fs = require('fs');
function Lease(renter, unit) {
this.unit = unit;
this.renter = renter;
}
var list = [];
var rl = readline.createInterface({
input: fs.createReadStream('input.txt'),
output: process.stdout,
terminal: false
});
rl.on('line', function(line) {
var values = line.split(' - ');
list.push(new Lease(values[0], values[1]));
});
console.log(list);
答案 0 :(得分:2)
在第一个版本中,console.log()
位于回调函数中,它将在调用回调函数时执行。
但是,在第二个版本中,console.log()
将在执行on.('line'
的回调函数之前调用...
回调函数是 Async ,它不会被执行,直到当前堆栈为空...