0
私のプログラムの構造は次のとおりです。forループでajaxリクエストからデータを取り出す方法は?次のように
var output = []; //<---- where I want to store the data
function getData(){
for(...){
$.getJSON("...", function(data){
if(...){
output.push(data[...]);
}else{
$.getJSON("...", function(data2){
output.push(data2[...]);
});
}
});
}
}
これが原因私はAJAX呼び出しの非同期な性質であることを理解して何に動作しません。関数を呼び出した後、データにアクセスできません。出力[0]を行うと、未定義が返されます。
あなたの完全なコードとあなたのデータがどのように見えるかをリンクできれば。なぜ 'forループ'の内部にネストされていますか?それは一般的には良いことではありません。 –
この場合、ループ内で実際に呼び出しを実行する必要がある場合は、約束事で作業する必要があります。 – Legends
"出力[0]は未定義を返します。"それは 'getJSON'関数が返る前になります。コールバック内のデータにアクセスする必要があります。そうでない場合は、コールバックから約束を返し、データにアクセスする前に解決するまで待つ必要があります。 –