我对NodeJ完全陌生,正在尝试打印返回中给出的字符串。

它返回一个空字符串

var lineReader = require('readline').createInterface({
  input: require('fs').createReadStream("shopn'stop.txt")
});



function getText() {

var billString  = ""
lineReader.on('line', function (line)
{
  // console.log('Line from file:', line);
  var tempStr = line;

  billString = billString.concat(tempStr + "\n");
  // console.log("temp " +  billString);
    });

 return billString;

}



console.log('BillString : ' +  getText());


我该如何解决 ?

我正在执行Node filename.js

电流回报:

BillString :

最佳答案

NodeJs异步工作,这意味着console.log命令在getText()命令开始后立即启动,但是没有任何保证可以在结束之前发生。

为了打印它,您需要将console.log命令放在回调中:

var lineReader = require('readline').createInterface({
  input: require('fs').createReadStream("shopn'stop.txt")
});

function getText() {

  var billString  = ""
  lineReader.on('line', function (line) {
    var tempStr = line;

    billString = billString.concat(tempStr + "\n");
  });

  console.log('BillString : ' +  billString);
}
getText();

07-28 04:58