连接 Sagas 至外部输入和输出
我们已经看到了,take
Effect 是通过等待 action 被发起到 Store 来解决(resolved)的。
也看到了 put
Effect 是通过发起一个 action 来解决的,action 被作为参数传给 put
Effect。
当 Saga 启动了(不管是初始启动或是稍后动态启动),middleware 会自动将它的 take
/ put
连接至 store。
这 2 个 Effect 可以被看作是一种 Saga 的输入/输出(Input/Output)。
redux-saga
提供了一种方式在 redux middleware 环境外部运行 Saga,并可以连接至自定义的输入输出(Input/Output)。
import { runSaga } from 'redux-saga'
function* saga() { ... }
const myIO = {
subscribe: ..., // 用于解决 take Effects
dispatch: ..., // 用于解决 put Effects
getState: ..., // 用于解决 select Effects
}
runSaga(
saga(),
myIO
)
欲了解更多信息请参见 API 文档。