为了账号安全,请及时绑定邮箱和手机立即绑定

为什么.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()

                });


正在回答

2 回答

要用到then之前呢,必定会有个deferred的返回值,然后再then,如果then里面有return,则就是链式调用,如果没有return,就是同时执行;

再看回这个例子,

第一个暂停没有return,说明这个暂停动画和后面的开门动画是同时执行的;

第二个开门有return,说明这个开门动画执行完毕之后再去执行开灯动画;

第三个开灯没有return,说明这个开灯动画和后面的进商店动画同时执行;

如此类推

9 回复 有任何疑惑可以回复我~
#1

慕粉13482341627 提问者

非常感谢!
2016-10-31 回复 有任何疑惑可以回复我~

当 ()=>{} {}内有多条语句,须加return

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

举报

0/150
提交
取消

为什么.then()里面有些函数用return,有些不用return呢?有什么区别呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信