UNPKG

@mittwald/react-use-promise

Version:

Simple and declarative use of Promises in your React components. Observe their state and refresh them in various advanced ways.

27 lines (26 loc) 1.32 kB
import { DurationLikeObject } from "luxon"; import { RemoveTimeout } from "../lib/ConsolidatedTimeout.js"; import { EventualValue } from "../lib/EventualValue.js"; import { ObservableValue } from "../observable-value/ObservableValue.js"; import { AsyncLoader, AsyncResourceState, OnRefreshHandler, UseWatchResourceOptions, UseWatchResourceResult } from "./types.js"; export declare class AsyncResource<T = unknown> { readonly loader: AsyncLoader<T>; loaderPromise: Promise<void> | undefined; private loaderPromiseVersion; private autoRefreshTimeout; readonly value: ObservableValue<EventualValue<T>>; readonly valueWithCache: ObservableValue<EventualValue<T>>; readonly error: ObservableValue<EventualValue<unknown>>; readonly state: ObservableValue<AsyncResourceState>; private readonly onRefreshListeners; static voidInstance: AsyncResource<undefined>; constructor(loader: AsyncLoader<T>); refresh(): void; onRefresh(handler: OnRefreshHandler): () => void; addTTL(ttl: DurationLikeObject): RemoveTimeout; load(): Promise<void>; isMatchingError(error: true | unknown): boolean; private handleLoading; use<TOptions extends UseWatchResourceOptions>(options?: TOptions): UseWatchResourceResult<T, TOptions>; watchState(): AsyncResourceState; }