function method1() {
method2();
var x = 1;
}
function method2() {
$.ajax({
type: "GET",
async: true,
url: "/MyController/MyMethod",
success: function (data) {
var y = 6;
}
});
}
首先发生 - y的初始化或x的初始化?
如果ajax调用是sync
而不是async
,那么这两行的顺序是什么?
在加载页面时调用method1。
答案 0 :(得分:2)
如果它是同步的并且如果GET成功则首先初始化Y.如果它是异步的,它可能也是,但是我把钱放在X上只是因为我怀疑它会在web方法返回之前继续。据说不能保证X先被解雇。
答案 1 :(得分:1)
x将首先被初始化(除非在某种程度上HTTP响应在它能够执行下一行之前返回,这是极不可能的)。 $ .ajax是异步的,响应回来需要时间。
如果你想保证y首先被初始化,你可以这样做:
function method1() {
method2(function()
{
var x = 1;
});
}
function method2(callback) {
$.ajax({
type: "GET",
async: true,
url: "/MyController/MyMethod",
success: function (data) {
var y = 6;
callback();
}
});
}