[英]How to alter a global variable from a function called when an event triggers?
我正在嘗試使用NodeJS和node-csv加載數組中的行。 從模塊中的示例:
// node samples/string.js
csv()
.from.string(
'#Welcome\n"1","2","3","4"\n"a","b","c","d"', {
comment: '#'
})
.to.array(function (data) {
console.log(data)
});
// [ [ '1', '2', '3', '4' ], [ 'a', 'b', 'c', 'd' ] ]
但是,如果在函數(數據)內部,我嘗試將每行添加到全局范圍內定義的Array中,則不會更改它。 很明顯,我不了解JS變量的范圍,但是解決此問題的最佳模式是什么?
看起來它正在更改rows變量,但是在推送行之前調用了console.log()調用。 您可以在按下.on('end')事件之后調用函數。
var csv = require('csv');
var rows = new Array();
csv()
.from.string(
'#Welcome\n"1","2","3","4"\n"a","b","c","d"', {
comment: '#'
})
.to.array(function (data) {
rows.push(data);
console.log(rows);
}).on('end', function() {
logRows();
});
var logRows = function() {
console.log(rows);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.