API
Middleware API
createSagaMiddleware(...sagas)
:创建Redux
中间件,将Sagas
与Redux Stroe
建立连接。middleware.run(saga, ...args)
:动态执行Saga
,用于applyMiddleware
阶段之后执行Sagas
。
Saga Helpers辅助函数
takeEvery(pattern, saga, ...args)
:在发起action
与pettern
匹配时派生指定的saga
。takeLatest(pattern, saga, ...args)
:在发起action
与pettern
匹配时派生指定的saga
,并且取消之前启动的所有saga
任务(如果在执行中)。
Effect creators创建器
take(pattern)
:创建一条 Effect 描述信息,指示 middleware 等待 Store 上指定的 action。Generator 会暂停,知道一个与pattern
匹配的action
被发起put(action)
:指示 middleware 发起一个action
到 Storecall(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,会很有用。
工具
channel([buffer])
最后更新于
这有帮助吗?