关于回调函数,搞不清

关于回调函数,搞不清

问题描述:这段代码里,move的第三个实参,赋值给形参后,是不是就把end替换掉

1位置的代码是不是就变成了

()={resolve()}()  这后面的括号是干嘛的?



https://img1.sycdn.imooc.com//climg/62867b11093656dd07020439.jpg

下载视频          

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

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

1回答
好帮手慕久久 2022-05-20 10:41:11

同学你好,理解是对的。问题解答如下:

()={resolve()} 是个函数,函数加括号就是“调用函数”,写法等价于如下形式:

https://img1.sycdn.imooc.com//climg/6286ff1f0913deb416060523.jpg

意思是“元素运动结束,触发transitionend事件后,就会执行fn函数,将Promise的状态,切换成成功”:

https://img1.sycdn.imooc.com//climg/6286ffab0983ca3408040514.jpg

祝学习愉快!


  • 老师,你好。图2 的第四步 把promise切换成成功状态是啥意思,实例化的Promise ,第一个参数resolve能直接给函数是什么原理? 根据前一章 Promise基本用法,传入参数要告诉是 resolve( ) 或者 reject 吧,不然promise 会显示 pending 状态。我的这描述能理解么? 

    https://img1.sycdn.imooc.com//climg/629b595e095ae92608370680.jpg


    2022-06-04 21:08:55
  • 解答如下:

    1、Promise对象有两个自带的参数resolve、reject,二者都是函数形式,它们用来改变Promise对象的状态,这是固定知识点:

    https://img1.sycdn.imooc.com//climg/629c1c65092d8c1407780153.jpg

    Promise对象内部有很多复杂的逻辑,这些逻辑支持上述描述。由于这些逻辑并没有暴露给我们,我们看不到,所以不需要知道、了解上述内容是怎么实现的,只需要会用就行。

    2、改变Promise的状态后,then方法中的两个函数参数,才会相应执行并接收到数据。即如果想让then中的某个方法执行,则必须要改变Promise的状态:

    https://img1.sycdn.imooc.com//climg/629c1dec099465f906450194.jpg

    而resolve、reject方法就是用来改变Promise的状态的,因此要调用二者之一。

    调用resolve,就是将状态切换成“成功“(Promise自身把该状态起名成“成功”),对应执行then的第一个函数(看下图黄色标注):

    https://img1.sycdn.imooc.com//climg/629c1ebb09209e9307370376.jpg

    调用reject,就是将状态切换成“失败”,对应执行then的第二个函数(看下图黄色标注)

    https://img1.sycdn.imooc.com//climg/629c1f120922528f07290432.jpg

    如果不调用,Promise就是pending状态,就不会执行then中的方法了,代码也就停滞了。

    2022-06-05 11:12:55
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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