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)
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
分情况,
如果catch在最后,中途then中报错后面代码就不会执行。
如果catch在中间,前面的then中报错后,catch还是返回一个promise所以后面调用then还是会执行。
关于promise详细可以看一下:http://es6.ruanyifeng.com/#do... 部分