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