在promise中,如果有多个then 回调,

        1. .catch 方法写在最后:如果catch在最后,中途then中报错后面代码就不会执行。

Promise.resolve(1).then(res=>{console.log(res); return res+x}).then(res2=>{console.log(res2),console.log(22)}).catch(err=>{console.log(err);return err})
结果:
//res:1 
//err:ReferenceError: x is not defined at eval (HelloWorld.vue?18db:27)

        2.catch方法写在中间:前面的then中报错后,catch还是返回一个promise所以后面调用then还是会执行。

Promise.resolve(1).then(res=>{console.log(res); return res+x}).catch(err=>{console.log(err);return err}).then(res2=>{console.log(res2),console.log(22)})
结果:
//res:1 
//err:ReferenceError: x is not defined at eval (HelloWorld.vue?18db:27)
//res2:ReferenceError: x is not defined  at eval (HelloWorld.vue?18db:27)
//22

Logo

加入社区!打开量化的大门,首批课程上线啦!

更多推荐