2017-05-01 11 views
1

私はこれで初めてです。私はjaavascriptを使って簡単なインタラクティブなチャートを作ろうとしています。考え方は、セレクタの値を変更するときに、データが使用しているチャートの変更です。d3。配列からcsv urlを呼び出すjavascript

しかし、私はデータの切り替えに問題があります。データはさまざまなURLから来ます。それらのURLはCSVファイルにあります。私のコードは、CSVファイルからURLを抽出し、配列を作成します。次に、配列の適切な要素からCSVファイルを呼び出します。コードの簡素化:

functionThatReturnsArray(){ 
d3.csv("http//URL.COM", function(){ 
SomeMoreCode; 
return ArrayOfStrings 
};) 
} 

A = functionThatReturnsArray(); 

MoreCode; 

//For example, the first value from A is selected 
d3.csv(A[0], function(error, data) { 
MoreCode; 
}) 

問題は、仕事をdoesn'tので、これは、d3.csvする有効な入力をisn'tようだということです。私は何かが欠落しているか、このようにすることができないかどうかはわかりません。

私は検索しました.d3.csvは非同期メソッドですが、それが問題かどうかはわかりません。

どれ提案が

答えて

0

はあなたの最初のCSVデータを非同期にロードされapreciatedされるので、この関数は、関数に次のコードを入れることができます

functionThatReturnsArray(){ 
    d3.csv("http//URL.COM", function(){ 
     SomeMoreCode; 
     return ArrayOfStrings 
    };) 
} 

何も戻りません

function processArray(A){ 

    MoreCode; 

    //For example, the first value from A is selected 
    d3.csv(A[0], function(error, data) { 
    MoreCode; 
    }) 
} 

と最初にこの関数を呼び出すcsvコールバックを読み込む

functionThatReturnsArray(){ 
     d3.csv("http//URL.COM", function(){ 
      SomeMoreCode; 
      processArray(ArrayOfStrings) //add this 
     };) 
} 
関連する問題