Nodejs 数组未按预期工作

Nodejs array not working as expected

本文关键字:工作 数组 Nodejs      更新时间:2023-09-26

我正在尝试从文本文件中读入并将它们存储在我的 Lease 类的数组中。如果我从最后一个循环内部控制台.log(),它将为每个迭代打印当前状态的循环。但是如果我移动控制台.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);

第一个版本中,console.log()在回调函数中,它将在调用回调函数时执行。

但是,在第二个版本中,console.log()将在执行on.('line'的回调函数之前调用...

回调函数是异步的,直到当前堆栈为空才会执行......