API

Middleware API

  • createSagaMiddleware(...sagas):创建Redux中间件,将SagasRedux Stroe建立连接。

  • middleware.run(saga, ...args):动态执行Saga,用于applyMiddleware阶段之后执行Sagas

Saga Helpers辅助函数

  • takeEvery(pattern, saga, ...args):在发起actionpettern匹配时派生指定的saga

  • takeLatest(pattern, saga, ...args):在发起actionpettern匹配时派生指定的saga,并且取消之前启动的所有saga任务(如果在执行中)。

Effect creators创建器

  • take(pattern):创建一条 Effect 描述信息,指示 middleware 等待 Store 上指定的 action。Generator 会暂停,知道一个与 pattern 匹配的 action 被发起

  • put(action):指示 middleware 发起一个 action 到 Store

  • call(fn, ...args):指定 middleware 调用 fn 函数并以 args 为参数

  • call([context, fn], ...args):同上,但是支持 fn 指定 this 上下文

  • apply(context, fn, args):同上,参数为数组

  • cps(fn, ...args):指示 middleware 以 Node 风格掉哟功能 fn 函数

  • cps([context, fn], ...args):支持为 fn 指定 this 上下文(调用对象方法)

  • fork(fn, ...args):指示 middleware 以 无阻塞调用 方式执行 fn

  • fork([context, fn], ...args):同上,但是支持 fn 指定上下文

  • join(task):指示 middleware 等待之前的 fork 任务返回结果

  • cancel(task):指示 middlware 取消之前的 fork 任务

  • select(selector, ...args):指示 middleware 调用提供的选择器获取 Store state 上的数据

Effect combinators

  • race(effects):指示 middleware 在多个 Effect 之间执行一个 race 的操作

  • [...effects] (aka parallel effects):指示 middleware 并行执行多个 Effect,并等待所有 Effect 完成

interface

  • Task

    • task.isRunning():如果任务还未返回或跑出了一个错误则返回 true

    • task.result():任务的返回值,如果任务正在执行中则返回 undefined

    • task.error():任务抛出的错误,如果任务正在执行中则返回 undefined

    • task.done:Promise(以任务的返回值 resolve、以任务抛出的错误 reject

    • task.cancel():取消任务(如果任务还在执行中)

External API

  • runSaga(iterator, {subscribe, dispatch, getState}, [monitor]):允许在 Redux middleware 环境外部启动 sagas。当你想将 Saga 连接至外部的输入和输出时,而不是 Store 的 action,会很有用。

工具

最后更新于