微信小程序js端生命周期问题

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
26
A: 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
2
3
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
28
A: 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)
}

})
},