为什么.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()
});
要用到then之前呢,必定会有个deferred的返回值,然后再then,如果then里面有return,则就是链式调用,如果没有return,就是同时执行;
再看回这个例子,
第一个暂停没有return,说明这个暂停动画和后面的开门动画是同时执行的;
第二个开门有return,说明这个开门动画执行完毕之后再去执行开灯动画;
第三个开灯没有return,说明这个开灯动画和后面的进商店动画同时执行;
如此类推
当 ()=>{} {}内有多条语句,须加return