Javascript 让d3.text按顺序运行?

Javascript 让d3.text按顺序运行?,javascript,d3.js,Javascript,D3.js,我正在用d3绘制图 我正在运行一个循环,并在每次迭代时调用此函数: d3.text(filename[data_idx_outer], "text/csv", function(text) 据我所知,这个函数是异步调用的。但是,对我来说,同步运行这个程序非常重要,因为我必须按照特定的顺序读取文件 因此,如何使此函数按顺序运行?如果没有,我必须这样做,有什么变通办法 this.cp_redraw = function() { if(this._redraw_in_prog

我正在用d3绘制图

我正在运行一个循环,并在每次迭代时调用此函数:

d3.text(filename[data_idx_outer], "text/csv", function(text)
据我所知,这个函数是异步调用的。但是,对我来说,同步运行这个程序非常重要,因为我必须按照特定的顺序读取文件

因此,如何使此函数按顺序运行?如果没有,我必须这样做,有什么变通办法

    this.cp_redraw = function() {
        if(this._redraw_in_progress)
            return;

        this.cp_setup_svg();

        this.datums = new Array();

        for(data_idx_outer in this.cp_input_files) {
            var myObj = function(obj) {
                return function() {
                    return obj;
                }
            }

            d3.text(filename[data_idx_outer], "text/csv", function(text){
                data = d3.csv.parseRows(text);
                self.datums.push(data);
            });
        }
}

最简单的方法是使用异步库,如Mike Bostock自己位于的队列

var q = queue(1);
tasks.forEach(function(t) { q.defer(t); });
q.awaitAll(function(error, results) { console.log("all done!"); });