gpt4 book ai didi

javascript - Nodejs 数组未按预期工作

转载 作者:行者123 更新时间:2023-12-02 15:08:55 25 4
gpt4 key购买 nike

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

最佳答案

在第一个版本中,console.log()位于回调函数中,当回调函数被调用时,它会被执行。

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

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

关于javascript - Nodejs 数组未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34915345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com