2017-12-02 151 views
1

我對NodeJs是全新的,並且試圖打印我在返回時給出的字符串。如何打印函數的返回值?

它返回一個空字符串

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()); 

我該如何解決這個問題?

我與節點filename.js

當前回報執行:

BillString : 

回答

1

工作的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(); 
+0

非常感謝回答,但它返回相同的結果。沒有觀察到變化 –