簡體   English   中英

如何在事件觸發時從調用的函數中更改全局變量?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM