使用redux-saga,可以并行执行多个效果:
import { call } from 'redux-saga/effects'
// correct,effects will get executed in parallel
const [users,repos] = yield [
call(fetch,'/users'),call(fetch,'/repos')
]
我如何以编程方式创建这些“call”-calls?
我想要实现的是:
让我说我有一个不同参数的数组,我想每个参数执行一个服务器请求,但与redux-saga并行:
const parameters = ['abc','def','ghi'] const allMyFetchCalls = parameters.map( (p) => makeCallRequestWithParameter(p) );
makeCallRequestWithParameter会在yield调用(fetch,param)中创建一个函数调用(或者在redux-saga-speech:一个效果中)调用(fetch,param)
const resultArray = yield allMyFetchCalls;
这是可能的,如果是的话,怎么样?
解决方法
请注意,呼叫效果当时不会调用任何内容.
它只是创建Plain JavaScript Object并返回.所以你想要的并不是那么困难.
它只是创建Plain JavaScript Object并返回.所以你想要的并不是那么困难.
import { call } from 'redux-saga/effects'
const params = ['abc','ghi']
const responses = yield params.map(p => call(fetch,p))