【发布时间】:2015-04-24 21:16:29
【问题描述】:
我有以下 Javascript,它返回的结果不符合我的预期。
function getCurrentItems(id){
alert("2");
$.ajax({
url: "somePHPurlthatspitsoutajsonencodedArray.php",
type: "POST",
dataType: "json'",
data: {id:id},
success: function(data){
alert("3");
}
});
alert("4");
}
$(document).on('click', '.eventClass', function(e){
alert("1");
var id = "someID";
var results = getCurrentItems(id);
alert("5");
});
我想我会按 1、2、3、4、5 的顺序收到警报。
相反,我按 1、2、4、5、3 的顺序获取它们。
我只是不明白为什么成功警报 (5) 会最后触发?
【问题讨论】:
-
欢迎来到异步 javascript 的精彩世界。
-
@JorgeF
async: false永远不是答案。 -
@JorgeF 是的,这真是个糟糕的建议。它只会掩盖真正的问题并有效地阻止他们了解事情的实际运作方式。
-
@chris72205 不要使用
async: false学习如何处理异步事件。 stackoverflow.com/questions/14220321/…
标签: javascript jquery ajax