UNPKG

villa

Version:

Promise utilities for async/await-ready environment.

17 lines (16 loc) 856 B
import { Resolvable } from '.'; export declare type LockHandler<T> = () => Resolvable<T>; /** * A simple asynchronous lock that helps queueing operations. */ export declare function lock<T>(object: any, handler: LockHandler<T>): Promise<T>; export declare type ParallelHandler<T> = (value: T, index: number, values: T[]) => Resolvable<void>; /** * Run tasks in parallel, similar to `v.map` but not mean to transform. */ export declare function parallel<T>(values: T[], handler: ParallelHandler<T>, concurrency?: number): Promise<void>; export declare type RaceTransformer<T, TResult> = (value: T, index: number, values: T[]) => Resolvable<TResult>; /** * Race tasks and fulfill or reject as soon as one of them fulfills or rejects. */ export declare function race<T, TResult>(values: T[], transformer: RaceTransformer<T, TResult>): Promise<TResult>;