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 })

 

posted @ 2022-03-31 19:59  沁霓  阅读(358)  评论(0)    收藏  举报