dva处理_umi项目中dva effects异常处理

本文讨论了在umi项目中使用dva时,如何处理dva effects的异常。当Antd Modal Confirm返回Promise且后端报错,loading无法自动关闭,通过在effect中添加try-catch可以解决。同时,未处理的异常可能阻塞后续流程,统一异常处理可以在umi的onError hook中实现,但某些特殊情况仍需在特定effect中单独处理。
摘要由CSDN通过智能技术生成

问题描述:

1、使用Antd的Modal的Confirm 如果返回一个Promise,它会自己关闭 loading状态。在使用过程中,已经返回了Promise,在后端报错的时候,loading并没有消失,当时的临时处理方案为,在相应的 effects添加 try catch

// Effects

*getList({ payload }, { call }) {

try {

return yield call(getList, payload);

} catch (err) {

return Promise.reject(err);

}

},

2、出现过一个问题,后端接口异常,在dva effects中没有进行异常处理,结果阻塞下面的流程,正常的逻辑是,上一次报错了,这一次应该可以正常请求。添加try catch后问题得到解决。

看完以上的问题描述,你可能会有一下问题:

为什么不加try catch 会阻塞流程?

是不是每个effects都要添加try catch的处理?

有没有地方可以统一处理这些错误?

带着上面这些问题接着往下看:

dva effects异常

// Effects

*getList({ payload }, { call }) {

return yield call(getList, payload);

},

此时如果后台服务器返回错误,会导致call Effect抛出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值