mirror of
https://github.com/wassname/DefinitelyTyped.git
synced 2026-09-09 11:13:57 +08:00
add apply effect creater
This commit is contained in:
@@ -16,6 +16,7 @@ import {
|
||||
put,
|
||||
race,
|
||||
call,
|
||||
apply,
|
||||
fork,
|
||||
select,
|
||||
cancel,
|
||||
@@ -55,13 +56,12 @@ namespace GettingStarted {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
namespace EffectCombinators {
|
||||
const fetchPostsWithTimeout:Saga = function* fetchPostsWithTimeout() {
|
||||
while( yield take('FETCH_POSTS') ) {
|
||||
// starts a race between 2 effects
|
||||
const {posts, timeout} = yield race({
|
||||
posts : call(fetchApi, '/posts'),
|
||||
posts : call([this, fetchApi], '/posts'),
|
||||
timeout : call(delay, 1000)
|
||||
})
|
||||
|
||||
@@ -140,7 +140,7 @@ namespace TaskCancellation {
|
||||
try {
|
||||
while(true) {
|
||||
yield put({type: 'REQUEST_START'})
|
||||
const result = yield call(someApi)
|
||||
const result = yield apply(this, someApi)
|
||||
yield put({type: 'REQUEST_SUCCESS', result})
|
||||
yield call(delay, 5000)
|
||||
}
|
||||
|
||||
Vendored
+14
-5
@@ -55,6 +55,12 @@ declare module 'redux-saga/effects' {
|
||||
|
||||
export type Effect = {};
|
||||
|
||||
type EffectFunction<T1, T2, T3> = (arg1?: T1, arg2?: T2, arg3?: T3, ...rest: any[]) => Promise<any> | Iterable<any>;
|
||||
|
||||
interface EffectFunctionContext<T1, T2, T3> {
|
||||
0: any;
|
||||
1: EffectFunction<T1, T2, T3>;
|
||||
}
|
||||
|
||||
export function take(pattern?: Pattern): Effect;
|
||||
|
||||
@@ -62,14 +68,17 @@ declare module 'redux-saga/effects' {
|
||||
|
||||
export function race(effects: {[key:string]: any}): Effect;
|
||||
|
||||
export function call<T1, T2, T3>(fn: (arg1?: T1, arg2?: T2, arg3?: T3, ...rest: any[]) => any,
|
||||
arg1?: T1, arg2?: T2, arg3?: T3, ...rest: any[]): Effect;
|
||||
export function call<T1, T2, T3>(fn: EffectFunction<T1, T2, T3>, arg1?: T1, arg2?: T2, arg3?: T3, ...rest: any[]): Effect;
|
||||
|
||||
export function call<T1, T2, T3>(fn: EffectFunctionContext<T1, T2, T3>, arg1?: T1, arg2?: T2, arg3?: T3, ...rest: any[]): Effect;
|
||||
|
||||
export function apply<T1, T2, T3>(context: any, fn: EffectFunction<T1, T2, T3>, arg1?: T1, arg2?: T2, arg3?: T3, ...rest: any[]): Effect;
|
||||
|
||||
export function fork(effect: Effect): Effect;
|
||||
export function fork<T1, T2, T3>(fn: (arg1?: T1, arg2?: T2, arg3?: T3, ...rest: any[]) =>
|
||||
Promise<any>|Iterable<any>,
|
||||
arg1?: T1, arg2?: T2, arg3?: T3, ...rest: any[]): Effect;
|
||||
|
||||
export function fork<T1, T2, T3>(fn: EffectFunction<T1, T2, T3>, arg1?: T1, arg2?: T2, arg3?: T3, ...rest: any[]): Effect;
|
||||
|
||||
export function fork<T1, T2, T3>(fn: EffectFunctionContext<T1, T2, T3>, arg1?: T1, arg2?: T2, arg3?: T3, ...rest: any[]): Effect;
|
||||
|
||||
export function join(task: Task<any>): Effect;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user