為什么.then()里面有些函數(shù)用return,有些不用return呢?有什么區(qū)別呢?
為什么.then()里面有些函數(shù)用return,有些不用return呢?有什么區(qū)別呢?
boy.walkTo(2000, 0.5)
? ? ? ? ? ? ? ? .then(function() {
? ? ? ? ? ? ? ? ? ? //暫停走路
? ? ? ? ? ? ? ? ? ? boy.stopWalk()
? ? ? ? ? ? ? ? })
? ? ? ? ? ? ? ? .then(function() {
? ? ? ? ? ? ? ? ? ? //開門
? ? ? ? ? ? ? ? ? ? return openDoor();
? ? ? ? ? ? ? ? })
? ? ? ? ? ? ? ? .then(function() {
? ? ? ? ? ? ? ? ? ? //開燈
? ? ? ? ? ? ? ? ? ? lamp.bright()
? ? ? ? ? ? ? ? })
? ? ? ? ? ? ? ? .then(function() {
? ? ? ? ? ? ? ? ? ? //進(jìn)商店
? ? ? ? ? ? ? ? ? ? return boy.toShop(2000)
? ? ? ? ? ? ? ? }).then(function() {
? ? ? ? ? ? ? ? ? ? //出商店
? ? ? ? ? ? ? ? ? ? return boy.outShop(2000)
? ? ? ? ? ? ? ? }).then(function() {
? ? ? ? ? ? ? ? ? ? //燈暗
? ? ? ? ? ? ? ? ? ? lamp.dark()
? ? ? ? ? ? ? ? });
2016-10-31
要用到then之前呢,必定會有個deferred的返回值,然后再then,如果then里面有return,則就是鏈?zhǔn)秸{(diào)用,如果沒有return,就是同時執(zhí)行;
再看回這個例子,
第一個暫停沒有return,說明這個暫停動畫和后面的開門動畫是同時執(zhí)行的;
第二個開門有return,說明這個開門動畫執(zhí)行完畢之后再去執(zhí)行開燈動畫;
第三個開燈沒有return,說明這個開燈動畫和后面的進(jìn)商店動畫同時執(zhí)行;
如此類推
2016-10-28
當(dāng) ()=>{} {}內(nèi)有多條語句,須加return