// 举个例子
let promise0 =function(){
return new Promise((resolve,reject)=>{
setTimeout(()=>{
reject('错误')
},200)
})
}
let promise1 =function(){
return new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve(11)
},200)
})
}
let promise2 = function(){
return new Promise((resolve)=>{
setTimeout(()=>{
resolve(222)
},200)
})
}
// async await 处理报错 方法1 使用try{}catch(Err){} 方法2 借鉴go node 错误先行尽量靠拢同步判断
async function asyncFnTestErr(){
try {
const promise0 = await promise0();
console.log("00-->",promise0)
} catch (error) {
console.log('error------>',error);
}
}
asyncFnTestErr();
// async await除了使用try catch 如何处理报错 方法1 错误先行!牛掰
// const [err, data] = await fetchData().then(data => [null, data] ).catch(err => [err, null])
async function fn (){
const [err1,data1] = await promise1().then(data=>[null,data]).catch(err=>[err,null]);
if(err1){
return false;
}
const [err2,data2] = await promise2().then(data=>[null,data]).catch(err=>[err,null]);
}
fn().then((res)=>{
console.log(res)
})
// 方法2 或者将报错抽抽离成公共方法
const awaitWrap = (promise) => {
return promise.then(data => [null, data]).catch(err => [err, null])
}