老师,为什么加了 return 就会正确的执行,看了好几遍还是没能理解。

来源:2-39 Then(异步操作)

小巴哥元芳

2020-04-14

图片描述
老师,您好,按照视频中所讲,.then( ) 只要传入非函数的参数的话,就会返回一个空的 promise对象。
截图中,第一个 .then()41到43行传入的是一个函数(箭头函数)
所以这样的话不是应该返回一个带有状态的 promise 的对象吗?
在不加 return 为什么还是会执行47行而不是49行

还有就是,为什么加了return就会正常执行,还是没太听懂

期待老师您的回复!

写回答

2回答

生命在于折腾_

2020-08-10

我是这样思考的

只有promise对象才能调用 .then方法

加 return 与 不加 return 结果不一致 是因为是不同的promise对象调用了 第二个 .then

不加return 是 由第一个.then返回的promise对象调用的第二个.then(.then 会返回一个新的 promise 实例)

加 return   是 由loadScript('./4.js')返回的promise对象调用的第二个.then

2
0

慕粉1926294646

2020-04-15

//img1.sycdn.imooc.com/szimg/5e97162b09a8652412660332.jpg

对比下这两处代码,其中 Promise.resolve 就是返回一个新的promise实例,你看看能理解吗

0
1
小巴哥元芳
then方法提供一个供自定义的回调函数,若传入非函数,则会忽略当前then方法。回调函数中会把上一个then中返回的值当做参数值供当前then方法调用。then方法执行完毕后需要返回一个新的值给下一个then调用(没有返回默认undefined)每个then只可能使用前一个then的返回值
2020-04-17
共1条回复

再学JavaScript ES(6-10)全版本语法大全

前端无门槛学习,从ES6到ES10,一套课程掌握JS最新语法

1182 学习 · 336 问题

查看课程