2016-11-07 102 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 
});