promise的catch放在then前面的场景

我们知道Promise 的 .then() 和 .catch() 方法的链式调用顺序通常是先 .then() 后 .catch()。这是因为 .then() 方法用于处理成功的情况,而 .catch() 方法用于处理失败的情况。.catch() 方法会捕获前面所有 .then() 链中抛出的异常,以及在 Promise 执行过程中发生的任何错误。

在一个失败重试场景中我把catch放在then前面,代码逻辑会很简单:

javascript 复制代码
...
const pause = (duration) => new Promise((reslove) => setTimeout(reslove, duration));
...
dosomething()
	.catch(e=>{
		console.log("frist fail");
		pause(delay).then(()=>{
			console.log("second try"); 
			dosomething()
				.then(()=>{console.log("retry succ");});
			})
	.then(()=>{dootherthing();})
	.catch(e=>{console.log("fail");})
相关推荐
前端Hardy7 小时前
面试官:JS数组的常用方法有哪些?这篇总结让你面试稳了!
javascript·面试
yuki_uix7 小时前
Props、Context、EventBus、状态管理:组件通信方案选择指南
前端·javascript·react.js
全栈老石7 小时前
手写无限画布4 —— 从视觉图元到元数据对象
前端·javascript·canvas
Leon9 小时前
新手引导 intro.js 的使用
前端·javascript·vue.js
牛奶9 小时前
JS随笔:浏览器 API(DOM 与 BOM)
前端·javascript·面试
牛奶10 小时前
JS随笔:异步编程与事件循环
前端·javascript·面试
牛奶10 小时前
JS随笔:数据结构与集合
前端·javascript·面试
小陆猿10 小时前
股票实时行情Echarts动态图表
前端·javascript
前端付豪10 小时前
Nest 项目小实践之注册登陆
前端·node.js·nestjs
牛奶10 小时前
JS随笔:ES6+特性与模块化实践
前端·javascript