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");})
相关推荐
看浪的路人3 小时前
第3讲:代码补全引擎
开发语言·windows·python
小小龙学IT3 小时前
Day 26-27 项目实战:从零构建一个高并发聊天室(epoll + 线程池)
linux·服务器·c语言·开发语言·网络
烂蜻蜓3 小时前
Node.js入门教程(五):NVM 管理多版本 Node.js
node.js
吴懿不在 不负信仰3 小时前
从jQuery谈库与框架的设计之优劣
前端·javascript·jquery
我就是妖怪3 小时前
【无标题】
开发语言
0566464 小时前
Python高级——迭代器
开发语言·python·学习
初级代码游戏4 小时前
iOS开发 Swift 速记4:函数与闭包
开发语言·ios·swift
郭涤生4 小时前
C++ 零拷贝(Zero-Copy)
linux·开发语言·c++
回忆2012初秋4 小时前
C# 中的 EAP:基于事件的异步编程全面指南(一)
开发语言·c#
ty_xiumud4 小时前
以太网 MAC 详解:帧格式、位序、FCS 与收发流程
开发语言·macos·php