Promise 中reject和catch

1,517 阅读1分钟

一、当Promise.then中有第二个回调函数时,执行then第二个函数。

let p=new Promise((resolve,reject)=>{
    throw new Error('出错了')
})
p.then(()=>{},err=>{
    console.log('reject'+err);
}).catch(err=>{
    console.log('catch'+err);
})
结果:rejectError: 出错了

二、当Promise.then中没有第二个回调函数时,执行catch。

let p=new Promise((resolve,reject)=>{
    throw new Error('出错了')
})
p.then(()=>{}).catch(err=>{
    console.log('catch'+err);
})
结果:catchError: 出错了

三、网络异常,会直接进入catch而不会进入then的第二个回调