關(guān)于complete的問題
不管是執(zhí)行openDoor()還是shutDoor(),里面函數(shù)doorAction中的count剛開始都是2,感覺complete中的if語句始終都不會執(zhí)行,但是這里只有返回了defer.resolve()后面才能繼續(xù)執(zhí)行then的異步操作,不是很明白為什么這里的if語句會執(zhí)行。。希望老師解答一下。。
不管是執(zhí)行openDoor()還是shutDoor(),里面函數(shù)doorAction中的count剛開始都是2,感覺complete中的if語句始終都不會執(zhí)行,但是這里只有返回了defer.resolve()后面才能繼續(xù)執(zhí)行then的異步操作,不是很明白為什么這里的if語句會執(zhí)行。。希望老師解答一下。。
2015-09-12
舉報
2015-11-12
if里的會執(zhí)行。是因為左門和右門各調(diào)用了一次。左門調(diào)用后count變?yōu)榱?.右門執(zhí)行時可以進入if。釋放defer.
你可以換成下面看下流程就知道了。
?? ? ? ?var complete = function(tt) {
console.log(count);
console.log(tt);
? ? ? ? ? ? if (count == 1) {
? ? ? ? ? ? ? ? defer.resolve();
? ? ? ? ? ? ? ? return;
? ? ? ? ? ? }
? ? ? ? ? ? count--;
? ? ? ? };
? ? ? ? doorLeft.transition({
? ? ? ? ? ? 'left': left
? ? ? ? }, time, complete("左門"));
? ? ? ??
? ? ? ? doorRight.transition({
'left': right
}, time, complete("右門"));
? ? ? ??
2015-09-12
執(zhí)行的代碼順序不同加載功能的表現(xiàn)也不同
2015-09-12
又看了看。。是因為先執(zhí)行的doorLeft.transition讓count減1,然后再執(zhí)行doorRight.transition,當它執(zhí)行完的時候才通過if判斷返回‘已完成’狀態(tài)的defer對象供后面開燈關(guān)燈的then方法調(diào)用。。是這樣理解嗎?