问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

Promise对象解析(3)catch方法

提问网友 发布时间:2025-01-24 23:18
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
1个回答
热心网友 回答时间:2025-01-24 23:21
Promise.prototype.catch()方法是Promise.prototype.then(undefined, onRejected)方法的别名,用于处理Promise失败的情况。

当Promise处于Rejected状态时,catch方法会接收一个参数,该参数是一个函数,接收一个reason参数,表示失败的原因。

举例说明catch方法的工作原理。假设Promise状态为Rejected,那么在then方法中定义的第二个参数(即失败处理函数)不会被调用,失败信息则会被catch捕获并输出。

通常,不要在then方法中定义失败处理函数,而应始终使用catch方法。这样更接近同步的处理方式(try...catch)。

catch方法返回一个Promise。该Promise的行为与回调函数的返回值有关:

如果回调函数返回一个值或无返回值,返回的Promise变为Resolved状态,并返回该值。

若回调函数抛出错误,返回的Promise变为Rejected状态,并返回该错误。

若回调函数返回已Resolved的Promise,返回的Promise同样变为Resolved,并传递该Promise的返回值。

若返回已Rejected的Promise,返回的Promise变为Rejected,并传递该Promise的错误。

若返回进行中的Promise,返回的Promise变为相应终态,并传递相同的参数。

举例中,catch返回一个处于Pending状态的Promise。2秒后变为Resolved,随后的then方法被触发,输出Promise中的参数2。

一旦Promise状态改变(Resolved或Rejected),resolve或reject后的错误不会被处理,视为未抛出。

Promise对象的错误具有“冒泡”性质,会一直向后传递,直至被onReject函数处理或catch语句捕获。

与传统的try...catch不同,若未使用then方法的第二个参数或catch方法指定错误处理,Promise对象抛出的错误不会影响外层代码,不会阻止后续代码执行。

本文为Promise对象解析系列文章之三,旨在深入理解catch方法的使用与行为。

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

Promise 规范与原理解析 | 京东物流技术团队 细数promise与async/await的使用及区别说明 乌贼鱿鱼章鱼的区别 2022年第22号台风“尼格”最新消息(附路径) 2022年第22号台风尼格登陆时间及地点 vue3手动删除keepAlive缓存 Vue 全站缓存之 keep-alive : 动态移除缓存 怎么在vue项目中强制清除页面缓存? 和劳务派遣签合同,现在在一家事业单位上班。每个月工资一千九,但是要... 劳务派遣怎么考事业编 劳务派遣事业单位可以晋升吗 劳务派遣考事业单位需要证明吗 颈椎转动有嘎嘣的响声是怎么回事 卡地亚k14项链多少钱 在卡地亚众多项链里哪10款是经典的? 卡地亚手表标志(卡地亚手表标志大小写区别) 什么鞋最保暖 冬天穿什么鞋子比较保暖? 选购室内保暖鞋时应该关注哪些方面? 保暖鞋保暖鞋按材质分类 $nextTick原理深度解析 用变色镜片选什么牌子 什么牌子的变色镜片好 哪个牌子变色眼镜较好 变色眼镜哪个品牌好 变色近视镜片哪个牌子好 依视路和全真的变色镜片哪个好 正品变色镜哪个牌子好 成都配变色镜片什么牌子的变色镜片好? 电脑无线网络打叉电脑上无线网络出现红叉该怎么解决 电脑无线上有个叉叉电脑无线网络连接地方有个红叉怎么办 电脑无法连接wifi红叉连接不可用电脑无线网络连接不上显示为红叉 电脑无线网显示红叉电脑无线网络连接没有禁用但是出现红叉 算筹进行乘法计算的步骤是怎样的呢 男孩子没有毕业证可以去信利电子厂上班吗? 高中毕业证,能查真假吗,因为要电力局上班 不知道会不会查的 问一下电子厂男生一般都是做什么的,再问一下平洲电子厂好吗 问一下电子厂男生一般都是做什么的,再问一下平洲电子厂好吗? 银联卡跟借记卡有什么不同 银联有什么卡
Top