1

d3.csv の呼び出し中のコールバックの非同期性により、コールバック内の変数に外部からアクセスできないようです。これに対する回避策はありますか?

ここに私のコードがあります -

var cprices;

d3.csv("../data/crudeprices.csv", function(data){

cprices = data;

getCrudePrices(data);

});

function getCrudePrices(data){

    for(var i = 0; i < data.length; i++) {

        //cprices.push(data[i].price);

        //console.log(cprices[i]);

    }

}

console.log("cprices " + cprices);

csv ファイルを読み込んで、データをコールバック外の配列にロードしたいと考えています。しかし、これはサポートされていないようです。これに対する解決策/回避策はありますか? 参考文献 - csv を d3.js の配列に

4

1 に答える 1

0

可能な解決策: d3.csv(...) 呼び出しは非同期であるため、「console.log(...)」に到達するまでに完全に実行されない可能性があります。

中間ハックとして、数秒間スリープ タイムアウトを設定し、それが役立つかどうかを確認することをお勧めします。

その場合は、呼び出しの非同期性を考慮してコードを再構築することをお勧めします。これは、d3.csv() 呼び出し内からすべてのロジックを処理することを意味する可能性があります

于 2013-09-18T19:06:04.233 に答える