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

})

相关文章

最后的控制台返回空数组.控制台在ids.map函数完成之前运行va...
我正在尝试将rxJava与我已经知道的内容联系起来,特别是来自J...
config.jsconstconfig={base_url_api:"https://douban....
我正在阅读MDN中的javascript,并且遇到了这个谈论承诺并且不...
config.jsconstconfig={base_url_api:"https://douban....
这是我的代码main.cpp:#include<string>#include<...