微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript-在React Redux应用程序中处理异步错误

有时Dan回推了

“当我看到

`.then(() => dispatch(...)).catch(...)` 

在React项目中.如果组件在调度过程中抛出,您将陷入困境.”

并说解决方案是如此简单.只要不要在呈现UI的then()之后链接catch().而是将错误处理程序作为第二个arg传递给then().

有人可以解释为什么会这样.

在我的情况下,我正在进行ajax调用,因此我假设我将进入200范围内的任何内容作为服务器响应,而进入catch范围内的200以外的内容(即服务器错误).我在这里想念什么吗?

解决方法:

因此Dan的意思是,在Async请求中,您希望成功调用会导致.then()被调用,并且由于您正在.then()中调度一个动作,而该动作又将更新redux存储,从而更新UI,因此,如果UI更新过程中出现任何错误,也会调用.catch(),而您希望仅当服务器返回错误时才调用它.

解决的办法是像

.then(
function (){
    //handle success
    dispatch({...})
},
function () {
    //handle reject() and Error for Async request

})

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐