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");})
相关推荐
阿里嘎多学长2 分钟前
2026-03-15 GitHub 热点项目精选
开发语言·程序员·github·代码托管
AsDuang2 分钟前
Python 3.12 MagicMethods - 51 - __rlshift__
开发语言·python
带娃的IT创业者2 分钟前
Python 异步编程完全指南(四):高级技巧与性能优化
开发语言·python·性能优化·asyncio·异步编程·技术博客
格林威3 分钟前
工业相机图像高速存储(C#版):直接IO(Direct I/O)绕过系统缓存,附堡盟相机实战代码!
开发语言·人工智能·数码相机·计算机视觉·缓存·c#·视觉检测
刺客xs4 分钟前
C++ 11新特性
java·开发语言·c++
喵叔哟7 分钟前
10. 【Blazor全栈开发实战指南】--JavaScript调用Blazor
开发语言·javascript·windows·udp
佩奇大王9 分钟前
P1460 路径问题
java·开发语言
云浪11 分钟前
5 分钟入门 fetch
前端·javascript
划水的code搬运工小李15 分钟前
Origin技巧(五)连接matlab控制台
开发语言·matlab
还是奇怪15 分钟前
Python第十课:异常捕获与测试入门
开发语言·python·异常捕获