【发布时间】:2013-07-09 10:15:46
【问题描述】:
我有一个 ajax 调用,比如回调 (b),在另一个 ajax 调用的回调中,比如回调 (a)。在我的代码(b)中取决于ajax调用(a)的成功。但是,与我的预期相反,ajax 调用 (b) 仍然在父 ajax 调用 (a) 完成之前成功完成。
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() ?
【问题讨论】:
-
ajaxB在哪里调用?
-
我正在尝试在 ajaxA 中将其称为 callback()。
-
完美,谢谢大家的回答。修复后的调用顺序与预期一致。
标签: javascript ajax asynchronous callback