UNPKG

@docsvision/webclient

Version:

Type definitions for DocsVision WebClient scripts and extensions.

43 lines (42 loc) 2.84 kB
import { LoadingState, LoadingStatus } from "@docsvision/webclient/System/LoadingState"; import { IBasicEvent } from "@docsvision/webclient/System/IBasicEvent"; /** * Класс для выполнения длительных операций, предотвращающий повторный запуск одной и той же операции. * Для каждой операции должен быть создан отдельный экземпляр класса. */ export declare class RequestHelper { private mLoadingState; private mLastQuery; private mStateChanged; private mLoaderDelay; private mPreventConcurrentQueries; constructor(onStateChanged?: (state?: LoadingState) => void, loaderDelay?: number, preventConcurrent?: boolean); /** * Вызывает sendFunc и обновляет {@link state} по мере выполнения запроса. Если предыдущий запрос не был завершен, вызов будет проигнорирован. * @param sendFunc Функция, выполняющая длительную операцию. * @param done Функция, которая будет вызвана в случае успешного завершения операции. * @param fail Функция, которая будет вызвана в случае ошибки. * @param concurrentPrevented Функция, которая будет вызвана в случае, если запрос уже выполняется. */ send<T>(sendFunc: () => Promise<T>, done?: (data: T) => void, fail?: (err: any) => void, concurrentPrevented?: () => void): LoadingState; /** * Перегрузка {@link send}, на основе Promise. */ sendEx<T>(sendFunc: () => Promise<T>, done?: (data: T) => void, fail?: (err: any) => void): LoadingState; /** Событие, возникающее при изменении статуса выполнения операции. */ get stateChanged(): IBasicEvent<LoadingState>; /** Текущее состояние операции. Может быть передано в {@link LoadingIcon} как параметр. */ get state(): LoadingState; /** Текущее состояние операции (равносильно state.status). */ get status(): LoadingStatus; /** Операция находится в процессе выполнения. */ get loading(): boolean; /** Операция завершилась с ошибкой. */ get error(): boolean; /** Операция завершилась успешно. */ get done(): boolean; /** @deprecated Используйте promise */ get deferred(): Promise<any>; /** @internal */ get promise(): Promise<any>; }