一浴井、reject后的東西,一定會進(jìn)入then中的第二個回調(diào)荒辕,如果then中沒有寫第二個回調(diào)谤草,則進(jìn)入catch
var p1=new Promise((resolve,rej) => {
console.log('沒有resolve')
//throw new Error('手動返回錯誤')
rej('失敗了')
})
p1.then(data =>{
console.log('data::',data);
},err=> {
console.log('err::',err)
}).catch(
res => {
console.log('catch data::', res)
})
結(jié)果:
沒有resolve
err:: 失敗了
then中沒有第二個回調(diào)的情況
var p1=new Promise((resolve,rej) => {
console.log('沒有resolve')
//throw new Error('手動返回錯誤')
rej('失敗了')
})
p1.then(data =>{
console.log('data::',data);
}).catch(
res => {
console.log('catch data::', res)
})
結(jié)果:
沒有resolve
catch data:: 失敗了
如果沒有then, 也可以直接進(jìn)入catch
var p1=new Promise((resolve,rej) => {
console.log('沒有 resolve')
//throw new Error('手動返回錯誤')
rej('失敗了')
})
p1.catch(
res => {
console.log('catch data::', res)
})
結(jié)果:
沒有resolve
catch data:: 失敗了
二抬吟、resolve的東西萨咕,一定會進(jìn)入then的第一個回調(diào),肯定不會進(jìn)入catch
var p1=new Promise((resolve,rej) => {
console.log('resolve')
//throw new Error('手動返回錯誤')
resolve('成功了')
})
p1.then(data =>{
console.log('data::',data);
}).catch(
res => {
console.log('catch data::', res)
})
結(jié)果:
resolve
data:: 成功了
不會進(jìn)入catch的情況
var p1=new Promise((resolve,rej) => {
console.log('resolve')
//throw new Error('手動返回錯誤')
resolve('成功了')
})
p1.catch(
res => {
console.log('catch data::', res)
})
結(jié)果:
resolve
- throw new Error 的情況和rej一樣火本,但是他倆只會有一個發(fā)生
- 另外危队,網(wǎng)絡(luò)異常(比如斷網(wǎng)),會直接進(jìn)入catch而不會進(jìn)入then的第二個回調(diào)**