promise(A).catch(f1).then(f2),f1执行后f2回执行吗,为什么
1.uniapp微信小程序uni.request捕获500异常2.uniapp兼容问题3.推荐两个好玩的轻提示4.不够完美但也很能打的5.uniapp实现刷新页面保留参数页面不报错的情况6.关于ESLint: Delete `␍`(prettier/prettier) 错误解决方案(3种)7.loading8.关于设备像素比9.js前端去除HTML标签返回纯字符串正则/<[^>]*>/g10.Js中valueOf和toString区别和使用11.vscode关于json文件添加注释报错处理12.使用js有效括号匹配封装函数13.单项数据流和双向数据绑定的原理,区别14.CSRF(跨站请求伪造)原理:15.记录一下现网微信小程序版本ios手机极个别手机关于登录api(别的没试过)不调用的问题,其他的ios可以正常唯独极个别的ios不可以16.uniapp实现多行文本溢出超过指定行数 展开 收起17.uniapp开发抖音小程序跳转18.css滚动吸附
19.promise(A).catch(f1).then(f2),f1执行后f2回执行吗,为什么
20.国际化怎么做,中文一个字,阿拉伯语很长一串,怎么实现样式的一致21.页面切换保存怎么实现数据不丢失且记忆滚动条位置,常规的方案会闪一下,不如原生性能,怎么解决22.nuxtjs锁函数封装23.css样式让元素得宽度由内容撑开24.watch vs. watchEffect25.HEIC26.Intersection Observer API 是浏览器原生提供的,用于异步检测目标元素与视口或父元素是否产生交叉。它的优势在于提高性能和简化代码实现。27.backdrop-filter(纯CSS实现丝滑边框线条动画)28.js中try中定义的数据catch无法访问29.自动化脚本同步单个平台所有小程序(本质跨平台uniapp但是业务紧急,按需使用)30.前端资源提示符31.微信小程序授权弹框32.关于高度从0到auto的过渡效果33.split使用注意点34.js之连续赋值35.border和outline的区别在JavaScript中,Promise链中的.catch()
方法用于捕获前面Promise中的错误,并且无论这个错误是在.then()
链中的哪一个环节产生的,.catch()
都会捕获到。当错误被.catch()
处理之后,如果希望后续的Promise链继续执行,可以这样做。
所以对于代码 promise(A).catch(f1).then(f2)
:
- 首先会执行
promise(A)
,如果它成功(resolved),则会继续执行到.then(f2)
部分,此时f2
会被调用。 - 如果
promise(A)
失败(rejected),则会跳过任何.then()
直接进入.catch(f1)
,执行错误处理函数f1
。 - 关键在于
.catch(f1)
之后的.then(f2)
部分。一旦f1
处理完错误(即使它没有明确解决这个错误,也就是没有在f1
中调用return Promise.resolve()或Promise.reject()
),控制权会传递给接下来的.then(f2)
,因此f2
会执行。这是因为.catch()
有效地“消化”了错误,使得Promise链可以继续正常进行。
总结:是的,f1
执行后,只要f1
内部没有抛出新的未被捕获的异常或者返回一个rejected的Promise,f2
就会执行。这是因为.catch()
处理了错误,保持了Promise链的连续性。
本文来自博客园,作者:jialiangzai,转载请注明原文链接:https://www.cnblogs.com/zsnhweb/p/18202136
合集:
bjjc奇奇怪怪bug
分类:
FE前端学习知识点
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)