別の ajax 呼び出しのコールバック内に、コールバック (b) としましょう。コールバック (a) としましょう。私のコード (b) では、ajax 呼び出し (a) の成功に依存します。ただし、予想に反して、親の ajax 呼び出し (a) が完了する前に、ajax 呼び出し (b) が正常に完了します。
Javascript
var ajaxAdata; //global
ajaxA(ajaxB(1));
function ajaxA(callback){
FB.api('/me', function(response) { //ajax call(a)
ajaxAdata = response.id;
callback(); // this completes before ajax call(a) completes
}
}
ajaxB = function(isPublic) {
.getJSON(){ //ajax call (b)
console.log(ajaxAdata); // necessary ajaxAdata returns undefined
}
}
ここでjavascriptに関して何か無知ですか? 私は多くの場所で、コールバック関数が非同期呼び出しを処理する正しい方法であることを読みました。この場合、JavaScript は引き続き ajaxB 関数を先読みし、FB.api() 呼び出しが完了する前に .getJSON() の実行を開始しますか?