rxjs-zone-less
Version:
A set of wrappers for RxJS to avoid unnecessary change detection and zone interference in Angular.
29 lines (28 loc) • 1.07 kB
TypeScript
import { Subscription } from 'rxjs';
import { Action } from '../Action';
import { SchedulerAction } from '../types';
import { AsyncScheduler } from './AsyncScheduler';
/**
* We need this JSDoc comment for affecting ESDoc.
* @ignore
* @extends {Ignored}
*/
export declare class AsyncAction<T> extends Action<T> {
protected scheduler: AsyncScheduler;
protected work: (this: SchedulerAction<T>, state?: T) => void;
id: any;
state?: T;
delay: number;
protected pending: boolean;
constructor(scheduler: AsyncScheduler, work: (this: SchedulerAction<T>, state?: T) => void);
schedule(state?: T, delay?: number): Subscription;
protected requestAsyncId(scheduler: AsyncScheduler, id?: any, delay?: number): any;
protected recycleAsyncId(scheduler: AsyncScheduler, id: any, delay?: number | null): any;
/**
* Immediately executes this action and the `work` it contains.
* @return {any}
*/
execute(state: T, delay: number): any;
protected _execute(state: T, delay: number): any;
unsubscribe(): void;
}