async / await
async/await可以 用同步的方式执行异步操作,解决了Promise的嵌套问题。
await捕获错误
promise.then((value) => {
console.log(value);
}.catch((error)=>{
console.warn(error)
});
直接在后面接 .catch()
const getData = async () => {
const res = await getData().catch(err => {
console.warn(err);
})
}
使用 try/catch
const getData = async () => {
try {
const res = await getData()
} catch (err) {
console.log(err);
}
}
async getXxx() {
try {
const info = await mtop.request({
api: 'mtop.xxx',
v: '1.0',
data: {
bizParams: JSON.stringify({
}),
},
ecode: 0,
type: 'GET',
dataType: 'originaljsonp',
});
window.console.log(info, 9999, 'getReliefInfo');
if (info?.data?.data === 'true' || info?.data?.data === true) {
return { relief: true };
} else {
return { relief: false, fail: info.ret[0] };
}
} catch (error) {
return { relief: false, fail: error.ret[0] };
}
}
const info = await reliefInfoDispatchers.getReliefInfo();
if (info?.fail) {
// 失败后的操作
return;
}
if (info?.relief) {
const type = await saveAgreement(value);
// 其他操作
} else {
// 其他操作
}