redux-saga不同时处理同一动作的多个实例

时间:2019-03-22 04:28:22

标签: reactjs redux redux-saga

我正在使用sagas上载不同数量的媒体文件。因此,您可以动态添加更多的媒体文件。我遇到的问题是,在不等待上一个完成的情况下上传文件时,先前分派的操作就会丢失,而新的分派会丢失。基本上,这与具有相同动作类型ms_print massif.out.<pid>的catch并发动作一样。

代码是这样的:

<pid>

我尝试了使用UPLOAD_ACTIONexport default function* root() { yield all([takeLatest(LOGIN_REQUEST, login), ..., takeLatest(UPLOAD_REQUEST, upload)]); } function* uploadSlide({payload}) { try { const response = yield call( uploadApi, payload ); yield put({type: SUCCESS, payload: response}); } catch (error) { yield put(type: FAILURE); } } 的其他替代方法,但是它们没有用。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

上传许多文件时,我也遇到了同样的问题。

使用takeEvery代替takeLatest

takeLatest用于取消以前的通话,而这正是您所遭受的痛苦。

我认为您系统的另一部分中存在错误。

答案 1 :(得分:0)

您需要使用takeLatest而不是takeEverytakeEvery对分配给与模式匹配的商店的每个动作都产生传奇。