2016-11-07 7 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

Line:

console.log ("stringResponse от электронной почты", stringResponse);

Функция обратного вызова на выходе ('data'), эта строка вызывается перед установкой переменной 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 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^