老师能帮我履下 Promise包装Ajax对象 这块的思路吗?看了视频还是不太懂

老师能帮我履下 Promise包装Ajax对象 这块的思路吗?看了视频还是不太懂

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

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

1回答
好帮手慕久久 2021-05-26 14:12:53

同学你好,简要的思路如下:

在promise中实例化Ajax时,会对应传入很多参数和方法(图一):

http://img1.sycdn.imooc.com//climg/60ade4460908e2ef06620556.jpg

这些参数和方法,都会被类Ajax中使用:

http://img1.sycdn.imooc.com//climg/60ade6ce09acfd2f20770972.jpg

类Ajax在调用图一中的那些方法时,会对应把一些数据传回来:

http://img1.sycdn.imooc.com//climg/60ade51a09a6864415670340.jpg

http://img1.sycdn.imooc.com//climg/60ade5390935cece14640385.jpg

http://img1.sycdn.imooc.com//climg/60ade56c098f1a9614480402.jpg

而promise的resolve方法,就会在执行success方法的时候被执行,从而改变Promise的状态为成功:

http://img1.sycdn.imooc.com//climg/60ade64c0900ab2115280562.jpg

reject方法同理。

同学可以结合之前的回复再理解一下:

https://class.imooc.com/course/qadetail/290406

祝学习愉快!


  • 老师,在用promise封装ajax中,实例化Ajax类时第二个参数再options后又传了 ...success、error等方法,这些方法不是会覆盖掉options中的方法吗?而options是用户传的参数,那用户是不是就没办法自定义success、error中的业务逻辑了?

    2022-03-24 11:01:38
  • 同学你好,使用promise封装后,就不用传入success等方法了。“成功后需要执行的逻辑”直接写在then方法中就行:

    https://img1.sycdn.imooc.com//climg/623c07050905a50f07570407.jpg

    同理,失败的具体逻辑,写在catch中就行:

    https://img1.sycdn.imooc.com//climg/623c073409ad430306820598.jpg

    祝学习愉快!

    2022-03-24 13:53:12
  • 谢谢老师!

    2022-03-24 14:33:01
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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