连接 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)。

  1. import { runSaga } from 'redux-saga'
  2. function* saga() { ... }
  3. const myIO = {
  4. subscribe: ..., // this will be used to resolve take Effects
  5. dispatch: ..., // this will be used to resolve put Effects
  6. getState: ..., // this will be used to resolve select Effects
  7. }
  8. runSaga(
  9. myIO,
  10. saga,
  11. )

欲了解更多信息请参见 API 文档