villa
Version:
Promise utilities for async/await-ready environment.
17 lines (16 loc) • 856 B
TypeScript
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>;