问题描述
someAction
我发现异步重击(即someAction
和my/thunk
中的任何一个都被拒绝了,my/thunk
仍然可以实现。当其中一个重击拒绝时,如何使MappingIterator<MyClass> iterator = new ObjectMapper()
.readerFor(MyClass.class)
.readValues(file);
while (iterator.hasNext()) {
MyClass object = iterator.next();
...
}
被拒绝?
解决方法
createAsyncThunk
总是会捕获错误,以便避免在您的应用中出现“未兑现承诺被拒绝”消息。
您需要自己检查每个用户的结果,并相应地返回被拒绝的承诺。
此外,请注意,按照当前的编写方式,您的代码将同时运行这两个thunk。很好,只需确保它是您真正想要的-串行运行它们,就需要await
。
这里的一个选项是:
return Promise.all([
thunkApi.dispatch(someAction()).then(unwrapResult),thunkApi.dispatch(someAction2()).then(unwrapResult)
]);
那将:
- 同时运行两个动作
- 将每个操作的结果操作转换回已实现或已拒绝的承诺
- 返回承诺,如果其中一个请求被拒绝,则该承诺将被拒绝
检查您的子操作结果,然后在其中throw
和new Error
进行简单检查,您的主要操作就会自动捕获到该结果。并将以reject
结尾。
或如果正确配置了类型,则可以销毁错误对象并进行如下检查错误:
if(error) throw Error('Some message!')
;