UNPKG

asva-executors

Version:

Helper classes for your async flow control

37 lines (36 loc) 1.15 kB
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; }