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");})
相关推荐
tangjunjun-owen14 小时前
[特殊字符] Python异步调用本地Ollama大模型实战:从Demo到高并发避坑指南
开发语言·chrome·python
RSTJ_162514 小时前
PYTHON+AI LLM DAY FOURTY-THREE
开发语言·人工智能·python
Volunteer Technology14 小时前
SpringAI(二)Models 模型介绍
开发语言·人工智能·python
Jx65715 小时前
初学者视角下的JavaScript作用域理解
javascript
lly20240615 小时前
《jEasyUI 取得选中行数据》
开发语言
廖松洋(Alina)15 小时前
07答案比对与反馈UI-鸿蒙PC端Electron开发
javascript·ui·华为·electron·开源·harmonyos·鸿蒙
Ulyanov15 小时前
《从质点到位姿:基于Python与PyVista的导弹制导控制全栈仿真》: 刚体觉醒——6-DOF刚体动力学、四元数与全姿态解算
开发语言·人工智能·python·算法·系统仿真·雷达电子对抗仿真
nexustech15 小时前
JavaScript日期处理工具date-fns,累计36.5k Star
开发语言·javascript·其他·ecmascript
Sylvia33.15 小时前
足球数据API接入实战:从认证到实时比分推送的完整指南
java·开发语言·前端·c++·python
Chloeis Syntax15 小时前
JavaEE初阶学习日记(1)---线程和进程
java·开发语言·学习·线程·javaee