使用axios请求离线后端时NETWORK ERROR未被捕获始终返回成功如何解决
问题根因
- 所有
async函数的返回值本质都是Promise对象,你未加await直接在if判断里调用createExpensesRecord,相当于直接判断Promise对象的布尔值:JS中所有对象的布尔转换结果都是true,所以必然会一直走SUCCESS分支,和异步请求的实际结果无关。 - 你后续更新的代码存在语法错误:
await function submitAccountingRecord()是非法写法,你混淆了async和await的使用位置,函数声明前需要加的是async关键字而非await。
修正方案
基于你现有的实现逻辑,只需要修改业务调用代码的两处即可:
// 函数声明前加async,不是await async function submitAccountingRecord() { if(formDataValid()) { // 调用异步函数前加await,拿到实际返回的布尔值再判断 if(await createExpensesRecord(cmd)) { console.log("SUCCESS") } else { console.log("FAILED") } ... } }
内容的提问来源于stack exchange,提问作者nykon
相关产品推荐
相关产品推荐

