每周有收获--优雅的捕获 async await错误

// 举个例子

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])

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值