js的方法执行顺序不是顺序执行,而是异步执行,尤其是进行网络请求时,**即a.get(url)**。这样js的异步执行更加明显。如以上代码,打印输出不一定是ABC,而有可能是ACB。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26A: function () {
var t = this;
success: function () {
console.log(A)
},
t.B();
t.C();
})
},
B: function () {
var t = this;
success: function () {
console.log(B)
}
})
},
C: function () {
var t = this;
success: function () {
console.log(c)
}
})
},
要避免js的异步执行可以用success方法
1 | success: function () { |
如果B,C方法的执行并没有什么顺序要求可以这样写,但是有顺序要求的话就必须
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28A: function () {
var t = this;
success: function () {
console.log(A)
t.B();
},
})
},
B: function () {
var t = this;
success: function () {
console.log(B)
t.C();
}
})
},
C: function () {
var t = this;
success: function () {
console.log(c)
}
})
},