2017-12-02 7 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

おかげで多くのことを、それは同じ結果を返します。変化は観察されなかった –

関連する問題