then的第二个参数和catch

then的第二个参数和catch

then的第二个参数和catch有什么区别吧?都是用来处理错误有什么不同吗?

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

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

1回答
imooc_慕慕 2022-09-25 10:12:28

同学你好,解析如下:

两者是有区别的:

第一:reject是用来抛出异常的,catch是用来处理异常的。

第二:reject是Promise的方法,而then和catch是Promise实例的方法。

then的第二个参数和catch捕获错误信息的时候会就近原则,如果是promise内部报错,reject抛出错误后,then的第二个参数和catch方法都存在的情况下,只有then的第二个参数能捕获到。

如果then的第二个参数不存在,则catch方法会捕获到。

https://img1.sycdn.imooc.com//climg/632fb8f609a3a17907910659.jpg

如果网络异常(比如断网),会直接进入catch而不会进入then的第二个回调。

祝学习愉快~

  • 提问者 从此在回忆里 #1

    为什么网络异常,会直接进入catch而不会进入then的第二个回调?

    2022-09-25 17:52:44
  • imooc_慕慕 回复 提问者 从此在回忆里 #2

    同学你好,catch是用来处理异常的当遇到突然断网时可以给用户提示信息或者根据需求再进一步的去处理这种特殊的情况,了解即可,祝祝学习愉快~

    2022-09-25 18:01:42
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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