Reduxsaga从saga-action中的地图内部调度动作

我有以下方式的 API 调用:

  1. 调用 main api,它给了我一个对象数组。
  2. 对于数组中的每个对象,我必须异步调用另一个 API。
  3. 一旦对象的子 API 调用完成,更新它在 redux 存储中的数据,它是一个数组 (ofc) 并显示它。

所以场景是一个列表,显示以动态方式增长的项目。

由于我使用的是 redux-saga,因此我必须从 redux-action 内部发送第二部分。我尝试了以下方法:

const response = yield call(get, 'endpoint')

const configHome = response.map(function* (ele) {
    const data = yield call(get, ele.SomeURI + '?someParameter=' + ele.someObject.id)
}))

这不起作用,因为 map 对生成器函数一无所知。所以我试过这个:

const response = yield call(get, 'endpoint')

const configHome = yield all(response.map((ele) => {

     return call(get, paramsBuilder(undefined, ele.CategoryID))

}))

但这会阻止我的 UI 显示可用数据,直到所有子 API 调用完成。

我还尝试制作一个单独的生成器函数,我从地图内部调用它并调用它的 .next() 函数,但这里的问题再次是 saga 不控制该生成器函数,因此调用效果不会正确返回任何值。

完全卡在这部分。将不胜感激任何帮助。

以上是Reduxsaga从saga-action中的地图内部调度动作的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>