【发布时间】:2020-08-27 15:36:01
【问题描述】:
在redux saga中,如果我们想处理多个promise,我们可以使用all(相当于Promise.all):
yield all(
users.map((user) => call(signUser, user)),
);
function* signUser() {
yield call(someApi);
yield put(someSuccessAction);
}
问题是,即使其中一个promise(调用)失败,整个任务也会被取消。
我的目标是保持任务活着,即使其中一个承诺失败了。
在纯 JS 中我可以使用 Promise.allSettled 处理它,但在 redux saga 中正确的方法是什么?
编辑:仍然没有找到任何合适的解决方案,即使我将yield all 包装在try... catch 块中,即使其中一个调用失败,整个任务也会被取消。
【问题讨论】:
-
@Roamer-1888 谢谢!但我正在为 redux saga 寻找指定的解决方案
-
语法稍有不同,原理相同。
-
@Roamer-1888 不是真的,sagas 保存在发电机上
-
Patrickkx,这是什么意思,能给我一个参考吗?
标签: javascript reactjs promise react-redux redux-saga