Подключение Saga-ов к внешнему входу/выходу
Мы видели, что Effect take
выполняется путем ожидания action которые были диспатчены в Store. И то что Effect put
выполняется путем отправки диспатча action указаного в качестве аргумента.
Когда запущена Saga (либо при запуске, либо позже динамически), middleware автоматически связывает take
/ put
с Store. Эти 2 Effect-а можно рассматривать как своего рода вход/выход для саги.
redux-saga
поддерживает способ запуска Saga-ов вне среды Redux middleware и подключения к пользовательскому Input/Output.
import { runSaga } from 'redux-saga'
function* saga() { ... }
const myIO = {
subscribe: ..., // this will be used to resolve take Effects
dispatch: ..., // this will be used to resolve put Effects
getState: ..., // this will be used to resolve select Effects
}
runSaga(
myIO
saga,
)