访问从异步函数输出的变量

时间:2015-07-28 19:18:32

标签: javascript asynchronous d3.js

我对此代码段有疑问:

d3.csv("data/airports.csv", function(err, a) {
    var count=0;

    a.forEach(function(i){
       if(i.iata_faa == ""){}
       else {
             count++;
             addpoint(i.lon, i.lat,i);
      }
    });

    airports=a;
    myDataIsReady();
    console.log(count);
});

function myDataIsReady(){
    console.log(airports);
    return airports;
}

console.log(airports);

请注意airports是一个全局变量。

我需要为另一个函数处理变量airports,但是该值为null,我认为这是null,因为csv文件尚未完全处理,对吧?

我如何解决?

1 个答案:

答案 0 :(得分:1)

通常对于异步函数,将回调(函数引用)推送到异步方法,以便在ajax调用完成时处理数据。您不会从该类型函数返回数据,而是将数据注入其中。