请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

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

期待老师您的回复!

正在回答 回答被采纳积分+3

2回答

生命在于折腾_ 2020-08-10 17:43:46

我是这样思考的

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

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

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

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

2 回复 有任何疑惑可以回复我~
慕粉1926294646 2020-04-15 22:12:28

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

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

0 回复 有任何疑惑可以回复我~
  • 提问者 小巴哥元芳 #1
    then方法提供一个供自定义的回调函数,若传入非函数,则会忽略当前then方法。回调函数中会把上一个then中返回的值当做参数值供当前then方法调用。then方法执行完毕后需要返回一个新的值给下一个then调用(没有返回默认undefined)每个then只可能使用前一个then的返回值
    回复 有任何疑惑可以回复我~ 2020-04-17 21:20:31
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信