【发布时间】:2023-10-08 23:04:02
【问题描述】:
我有一个“提供者”列表,我必须从其中异步获取数据。我使用 redux-saga。
函数 requestProvider 返回 Promise 并为每个提供者获取数据。
我使用“yield all”来运行多个异步请求。
我需要将结果从每个提供者推送到 redux 商店。我尝试使用“yield all”来注册“put”。但是这条线被忽略了。我不确定我做得对。
如何调用redux action将数据发送到redux store?
. . .
// Providers api
const providers = [ '/apiProvider1', '/apiProvider2', '/apiProvider3' ];
// Fetching data from each provider
const providerResults: [] =
yield all(providers.map(provider => call(requestProvider, provider)));
// Trying to push the results to redux-stor, but this line is ignored, nothing happened here
yield all ([
providerResults.map(
result => put({ type: constants.MAP_PUSH_PROVIDER_RESULTS, providerResults: result }))
])
. . .
export const requestProvider = (provider: Provider, coverageLocation: CoverageLocation): Promise<boolean> => {
// console.log('promise:::', provider);
return new Promise((resolve, reject) => {
. . .
}
【问题讨论】:
标签: asynchronous redux redux-saga saga