2016-11-07 99 views
0

我在我的nodejs函數中有以下代碼。即使IF條件爲真,我也沒有爲stringResponse變量獲取值更新。無法訪問nodejs代碼中的值

var fs = require('fs'), 
       byline = require('byline'); 
      var stream = fs.createReadStream('Solutionbank.csv'); 
      var stringResponse = "We found a similar issue. "; 
      stream = byline.createStream(stream); 
      stream.on('data', function(line) { 
       var csvLine = line.toString('utf8'); 
        csvLine = csvLine.toLowerCase().trim(); 

       var msgText = subject.toLowerCase().trim(); 
       //console.log("email block",msgText); 
       if(csvLine.indexOf(msgText) > -1) { 
       var arr = line.toString('utf8').split(","); 

       stringResponse = stringResponse + "Issue ID"+arr[0]+",Subject : "+arr[1]+", Resolution Comment:"+arr[2]; 
       console.log(stringResponse); 

       } 
      }); 

      console.log("stringResponse from email",stringResponse); 

回答

1

線:

的console.log( 「從電子郵件stringResponse」,stringResponse);

是outsite上(「數據」)的回調函數,這條線是設置stringResponse變量之前調用。把它放在回調函數的末尾(裏面)。或者在流尾部調用的另一個回調函數中:

stream.on('data', function(line) { 
    ... 
    console.log("stringResponse from email",stringResponse); // show each append 
}); 

    stream.on('end', function() { 
    ... 
    console.log("stringResponse from email",stringResponse); // show each append 
});