redux-saga的一些快速射击同样的动作错过了

时间:2016-02-04 18:50:32

标签: redux saga redux-saga

大家好,我在其中一个React组件中有一个onChange回调函数,它通过这样的map调用多次调度一个动作:

#navbar

我有一个Saga用于"项目"像这样:

onChange: (items, newRatio) => {
  items.map( item => {
    dispatch(itemActions.updateStart({
      ...item,
      adjusted_ratio: _.round(item.adjusted_ratio + newRatio, 1),
    }))
  })
}

换句话说,我希望每当调度ITEMS_UPDATE_START操作时,它都会分叉一个新的updateItemDbCrud并继续执行一些API工作,但我注意到只有第一个调度序列通过。我用叉子错吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

这是一个已知问题(https://github.com/yelouafi/redux-saga/issues/50),它与承诺的性质及其在Redux Sagas核心中的使用有关。

已在版本0.6 中解决。

如果你想了解更多关于导致这个问题的原因,我建议你阅读上面的github问题,以及Jake Archibalds关于任务,微任务,队列和时间表的文章。

https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/