promise then catch 状态改变
2021-06-14 本文已影响0人
RickyWu585
总结
-
promise resolve后,会变为resloved状态,此时会调用then方法,调用then会默认返回一个resolved状态的promise对象,会继续调用then方法。但是如果then里抛出error的话,那么会返回一个rejected状态的promise对象,会调用catch方法 -
promise reject后,会变为rejected状态,会调用catch方法,如果catch里正常结束的话,会返回一个resolved状态的promise对象,会继续调用`then方法
// 同步代码先执行,then里面的是异步函数,后执行
const p1 = Promise.resolve()
console.log('p1',p1)
const p1Then = p1.then(()=>{
console.log('p1 then')
})
console.log('p1Then:',p1Then)
const p2 = Promise.reject('error')
console.log('p2',p2)
const p2Then = p2.then(()=>{
console.log('p2 then')
}).catch(err=>{
console.log(err)
console.log('p2 catch')
})
console.log('p2Then:',p2Then)
p2Then.then(()=>{
console.log('p2Then then')
}).catch(()=>{
console.log('p2Then catch')
})
image.png
image.png