变量未在while循环中更新(nodejs)

时间:2017-02-18 01:23:14

标签: javascript node.js callback

即使我没有错误并且我能够打印文件数据,input_1在整个循环中似乎没有变为true。因此,我不打印'y',只是一个无穷无尽的x系列。我希望while循环等到input_1变量发生变化,我不想使用promises。

var fs = require("fs");
var input_1 = false;
var input_2 = false;

fs.readFile('input.txt', function(err, data){

    if (err) {return console.log(err);};
    console.log(data.toString());
    input_1 = true;

})

fs.readFile('input2.txt', function(err, data){
    if (err) {return console.log(err);};
    console.log(data.toString());
    input_2 = true;

})

while(!input_1){
    console.log('x')
}

console.log('y')

1 个答案:

答案 0 :(得分:0)

在这种情况下我可能错了,但目前我看来是一个异步问题。我并不完全熟悉nodeJS中的readFile函数,但您可能需要做的是从文件读取器或回调中链接一个promise。

我认为潜在的问题是while循环在回调改变你一直在测试的变量的值之前运行。

相关问题