搞不懂这块

搞不懂这块

http://img1.sycdn.imooc.com//climg/5eb5139d0977fa1803750299.jpg

Promis.resolve(obj)的结果是什么?

它是直接执行了一次obj的then吗?可是obj的then方法是有形参的啊,因为没有传形参所以只打印‘我被执行了’吗?

然后后面再执行then方法,还是obj里面的那个then?那里面的数据怎么来的呢?上一步obj的then执行了一次后不是还有个cb('哼')吗?还是说没有它?而且后面再执行then的时候怎么不打印‘我被执行了’呢?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,关于你的问题,回答如下:

1、事故Promise实例

2、不是的,这里可以理解为:Promise.resolve()把thenable对象直接转换成了Promise实例,然后执行了后面的then方法。

3、cb("哼")这就是函数调用的语法格式,“哼”是传入的字符串参数。这里cb就是then方法中的一个参数,这个参数类型是函数。

如下所示,因为在执行then方法时,传入的回调函数就是指cb,在调用then的时候,会立即执行cb("哼"),此时的“哼”就表示就是data的值,所以最终可以将“哼”打印出来。

http://img1.sycdn.imooc.com//climg/5eb529d10912a7ef04600346.jpg

如果我的回答帮助了你,欢迎采纳,祝学习愉快~

  • Aurora_Meteor 提问者 #1
    这是说‘我被执行了’是在下面最后那个有data的then方法里被执行的吗? 下面then里的那个函数体(data是这个函数体的形参)是实参,它代替了上面then的形参cb?然后执行打印‘我被执行了’这句代码,然后下面的传入的实参里的函数要执行的操作是打印传入函数的参数data,而在上面的cb("哼")说明传入的参数data就是"哼",所以接下来打印"哼"。是这样理解吗?
    2020-05-08 17:58:47
好帮手慕糖 2020-05-08 19:07:25

同学你好,是的,可以这么理解哦。

祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师