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