Asynchronous 使用redux saga异步调用redux存储

Asynchronous 使用redux saga异步调用redux存储,asynchronous,redux,redux-saga,saga,Asynchronous,Redux,Redux Saga,Saga,我有一个包含“提供者”的列表,我必须异步从中获取数据。我用的是redux传奇 函数requestProvider返回承诺并获取每个提供程序的数据 我使用“全部屈服”来运行多个异步请求 然后我需要将每个提供者的结果推送到redux商店。我尝试使用“全部屈服”来注册“卖出”。但这条线被忽略了。我不确定我是否做对了 如何调用redux操作将数据发送到redux存储 . . . // Providers api const providers = [ '/apiProvider1', '/apiPro

我有一个包含“提供者”的列表,我必须异步从中获取数据。我用的是redux传奇

函数requestProvider返回承诺并获取每个提供程序的数据

我使用“全部屈服”来运行多个异步请求

然后我需要将每个提供者的结果推送到redux商店。我尝试使用“全部屈服”来注册“卖出”。但这条线被忽略了。我不确定我是否做对了

如何调用redux操作将数据发送到redux存储

. . .

// 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) => {
 . . .
}
。
//提供者api
常量提供程序=['/apiProvider1','/apiProvider2','/apiProvider3'];
//从每个提供者获取数据
常量提供程序结果:[]=
产生全部(providers.map(provider=>call(requestProvider,provider));
//试图将结果推送到redux stor,但忽略了这一行,这里什么也没有发生
交出全部([
providerResults.map(
结果=>put({type:constants.MAP\u PUSH\u PROVIDER\u RESULTS,providerResults:result}))
])
. . .
export const requestProvider=(提供程序:provider,coverageLocation:coverageLocation):Promise=>{
//log('promise::',provider);
返回新承诺((解决、拒绝)=>{
. . .
}

providerResults.map返回一个数组,然后将其包装到另一个数组中。我认为您只需要删除该额外数组

yield all ( // <-- removed square bracket on this line
  providerResults.map
    result => put({ type: constants.MAP_PUSH_PROVIDER_RESULTS, providerResults: result }))
) // <-- and on this line
yield all(//put({type:constants.MAP\u PUSH\u PROVIDER\u RESULTS,providerResults:result}))

)//providerResults.map返回一个数组,然后将其包装到一个附加数组中。我认为您只需要删除该附加数组

yield all ( // <-- removed square bracket on this line
  providerResults.map
    result => put({ type: constants.MAP_PUSH_PROVIDER_RESULTS, providerResults: result }))
) // <-- and on this line
yield all(//put({type:constants.MAP\u PUSH\u PROVIDER\u RESULTS,providerResults:result}))
) //