Reduxsaga从saga-action中的地图内部调度动作
我有以下方式的 API 调用:
- 调用 main api,它给了我一个对象数组。
- 对于数组中的每个对象,我必须异步调用另一个 API。
- 一旦对象的子 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 不控制该生成器函数,因此调用效果不会正确返回任何值。
完全卡在这部分。将不胜感激任何帮助。