运行 一系列 sagas 依次生效

Run an array of sagas effect sequentially

我正在尝试按顺序生成一系列传奇效果。 这个想法是 yield all([call(foo), call(bar]) 将 运行 call(foo)call(bar) 并行(或至少以伪并行方式)。

但是,我希望我的 sagas 按顺序 运行,这意味着我想等待 foo 结束,然后再启动 bar(这样我可以取消该过程)。

这个调用数组是动态生成的,所以我可以硬写一系列yield。在这种情况下正确的语法是什么?

redux-saga documentation 有一个排序传奇的例子。

如果您有一系列调用,只需在您的 saga 中生成这些调用即可。例如:

// Some array containing call objects
let calls = [...];

// Call each in order they are present in the array
for (let c of calls) {
  yield c
}