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");})
相关推荐
玄〤12 分钟前
Java 大数据量输入输出优化方案详解:从 Scanner 到手写快读(含漫画解析)
java·开发语言·笔记·算法
一周七喜h14 分钟前
在Vue3和TypeScripts中使用pinia
前端·javascript·vue.js
一起养小猫19 分钟前
Flutter for OpenHarmony 实战:番茄钟应用完整开发指南
开发语言·jvm·数据库·flutter·信息可视化·harmonyos
独自破碎E20 分钟前
总持续时间可被 60 整除的歌曲
java·开发语言
senijusene24 分钟前
数据结构与算法:队列与树形结构详细总结
开发语言·数据结构·算法
摘星编程34 分钟前
用React Native开发OpenHarmony应用:Calendar日期范围选择
javascript·react native·react.js
好好沉淀1 小时前
Elasticsearch 中获取返回匹配记录总数
开发语言·elasticsearch
东东5161 小时前
基于vue的电商购物网站vue +ssm
java·前端·javascript·vue.js·毕业设计·毕设
2301_765703141 小时前
C++与自动驾驶系统
开发语言·c++·算法
MediaTea1 小时前
<span class=“js_title_inner“>Python:实例对象</span>
开发语言·前端·javascript·python·ecmascript