亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于complete的問題

不管是執行openDoor()還是shutDoor(),里面函數doorAction中的count剛開始都是2,感覺complete中的if語句始終都不會執行,但是這里只有返回了defer.resolve()后面才能繼續執行then的異步操作,不是很明白為什么這里的if語句會執行。。希望老師解答一下。。

正在回答

3 回答

if里的會執行。是因為左門和右門各調用了一次。左門調用后count變為了1.右門執行時可以進入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("右門"));

? ? ? ??


0 回復 有任何疑惑可以回復我~
#1

Franc_Ribery 提問者

非常感謝!
2015-11-30 回復 有任何疑惑可以回復我~

執行的代碼順序不同加載功能的表現也不同

0 回復 有任何疑惑可以回復我~

又看了看。。是因為先執行的doorLeft.transition讓count減1,然后再執行doorRight.transition,當它執行完的時候才通過if判斷返回‘已完成’狀態的defer對象供后面開燈關燈的then方法調用。。是這樣理解嗎?

0 回復 有任何疑惑可以回復我~
#1

zhongkeyuan

是這樣理解的嗎?
2016-04-14 回復 有任何疑惑可以回復我~
#2

qq_畫一群人的感傷_0

這個返回執行完畢時給后面開燈關燈用的嗎???
2016-11-20 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于complete的問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號