asva-executors
Version:
Helper classes for your async flow control
37 lines (36 loc) • 1.15 kB
TypeScript
import LadderExecutor from '../Executors/LadderExecutor';
export declare type PointerRequest = (pointer: number, perStep: number) => Promise<any[]>;
export default class InfiniteLoader {
items: any[];
isFinished: boolean;
isRefreshing: boolean;
protected readonly executor: LadderExecutor;
protected readonly perStep: number;
protected pointer: number;
protected isFresh: boolean;
constructor(run: PointerRequest, perStep?: number);
/**
* Command from this executor is currently running.
*/
get isRunning(): boolean;
/**
* We tried to load, but list is empty
* Is false when executor is loading or is fresh.
*/
get isEmpty(): boolean;
/**
* We tried to load, and list is not empty
* Is false when executor is loading or is fresh.
*/
get isFull(): boolean;
/**
* Loads a bunch of items
*/
next(): void;
/**
* Refresh the list.
*/
refresh(): void;
protected runRequest(pointerRequest: PointerRequest, refresh?: boolean): Promise<void>;
protected applyNew(items: any[]): void;
}