promise的catch和finally方法
1:catch方法 具体看代码
1 const promise = new Promise((resolve, reject) => { 2 // resolve() 3 // reject('rejected meaasge') 第一种写法 4 //第二种写法 抛出异常 5 throw new Error("rejected message") 6 }) 7 //1当executor 抛出异常后,也是会调用错误捕获的回调函数的 8 promise.then(undefined, (err) => { 9 console.log(err); 10 console.log('-----------'); 11 }) 12 //2通过catch来传入拒绝(错误)捕获的回调函数 就不用传入resolve的回调函数 13 promise.catch((err) => { 14 console.log(err); 15 console.log('-----------'); 16 }) 17 //3:语法糖 这里回调的还是原来的promise 而不是then方法的新promise 18 promise.then(res => { 19 throw new Error('then的error') 20 }).catch(err => { 21 console.log(err); 22 }) 23 //4:catch的返回值 本身也是返回promise 24 promise.then(res => { 25 throw new Error('then的error') 26 }).catch(err => { 27 console.log(err); 28 return 'catch retrun value' 29 }).then(res => { 30 console.log(res); 31 }).catch(err => { 32 console.log(err); 33 })
2:finally方法 具体看代码
1 //finally 无论fullfiled还是rejected状态都会执行 2 const promise = new Promise((resolve, reject) => { 3 // resolve('heihei') 4 reject('error message') 5 }) 6 promise.then(res => { 7 console.log(res); 8 }).catch(err => { 9 console.log(err); 10 }).finally(() => { 11 console.log('finnally始终会执行'); 12 })
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!