2016-10-14 2 views
3

С Redux-саге, можно выполнить несколько эффектов одновременно: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') 
] 

Как я могу создать эти «называют» -calls программным?

Что я хочу достичь такой:

Допустим, у меня есть массив с различными параметрами и я хочу, чтобы выполнить запрос к серверу на параметр, но параллельно с Redux-саге:

const parameters = ['abc', 'def', 'ghi'] 

const allMyFetchCalls = parameters.map((p) => makeCallRequestWithParameter(p)); 

makeCallRequestWithParameter бы создать вызов функции (или в перевождь-саге-речи: эффект) вызова (выборка, пары) как в выходе вызова (выборки, пары)

const resultArray = yield allMyFetchCalls; 

Возможно ли это, и если да, то каким образом?

ответ

8

Обращаем ваше внимание, что call эффект не называет ничего в то время. Он просто создает объект Plain JavaScript и возвращает его. Так что вы хотите не так сложно.

import { call } from 'redux-saga/effects' 

const params = ['abc', 'def', 'ghi'] 
const responses = yield params.map(p => call(fetch, p)) 
+0

Wow! Большое спасибо! – itinance

 Смежные вопросы

  • Нет связанных вопросов^_^