then链式操作疑问

来源:4-22 promise - 标准总结

慕粉18380451249

2018-05-20

讲师的《深入理解js异步》博客中,曾有这么一段话,"如果then有链式调用,前面步骤返回的值,会被后面的步骤获取到。但是,如果前面步骤返回值是一个Promise的话,情况就不一样了,后面的then将会被当做这个返回的promise的第一个then对待" 从这句话可以分析出,then返回的不一定是一个promise实例,例如可以基本数据类型,但是promise标准中,又强调then返回的必须是一个promise实例,而不能是其他类型。对此造成了困惑,请讲师解惑,谢谢

写回答

2回答

Jesse1990

2018-05-20

promise中,then里面的函数是注册函数,如果注册函数返回的不是promise。最终也会被包装成promise

1
2
Astrogladiator
如果then里的注册回调是一个异步执行的任务,如果里面不加promise包裹的话,也还是没办法保证执行顺序的
2019-06-25
共2条回复

双越

2018-05-20

如 @Jesse1990 同学的答复,then 返回的肯定是一个 promise ,你应该是把这一点和 then 内部注册函数的返回值给弄混了。你的问题 http://coding.imooc.com/learn/questiondetail/58972.html 我也答复了,一个意思。

再有问题可继续回复哈。感觉教程有帮助,欢迎给一个好评。

1
0

前端跳槽必备 一线互联网公司高级前端JavaScript面试

视频讲解前端面试中的JS高级知识点,扩展JS知识深度,从容面试

1621 学习 · 218 问题

查看课程