在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