Skip to content

Promise ​

A Promise module that provides utility functions for working with asynchronous operations and promises. It includes features like backoff retries, benchmarking, debouncing, throttling, parallel execution, and more.

The module helps manage complex asynchronous workflows and provides better control over promise-based operations through various utility functions.

Key features:

  • Exponential backoff retries
  • Performance benchmarking
  • Debouncing and throttling
  • Deferred promises
  • Exclusive execution locks
  • Parallel task execution
  • Rate limiting
  • Retry mechanisms
  • Sleep/delay utilities

Visão Geral ​

backoff ​

typescript
backoff(fn: Function, options?: BackoffOptions): Promise<any>;

Tenta executar uma função com estratégia de backoff exponencial.

benchmark ​

typescript
benchmark(fn: Function): Promise<number>;

Mede o tempo de execução de uma função assíncrona.

debounce ​

typescript
debounce(fn: Function, wait: number): Function;

Retorna uma versão "debounced" de uma função que atrasa sua execução.

defer ​

typescript
defer<T>(): { promise: Promise<T>; resolve: Function; reject: Function };

Cria uma promise diferida com métodos externos de resolução e rejeição.

lock ​

typescript
lock<T>(fn: () => Promise<T>): Promise<T>;

Garante que a função assíncrona fornecida execute de forma exclusiva, prevenindo execuções concorrentes.

parallel ​

typescript
parallel(tasks: Function[], concurrency?: number): Promise<any[]>;

Executa múltiplas funções assíncronas em paralelo com limite opcional de concorrência.

rateLimit ​

typescript
rateLimit(fn: Function, limit: number, interval: number): Function;

Retorna uma versão da função limitada por taxa de chamadas.

retry ​

typescript
retry(fn: Function, retries: number, delay?: number): Promise<any>;

Tenta executar uma função um número especificado de vezes, com atraso opcional.

sleep ​

typescript
sleep(ms: number): Promise<void>;

Atrasa a execução por uma quantidade de milissegundos.

throttle ​

typescript
throttle(fn: Function, wait: number): Function;

Retorna uma versão "throttled" de uma função que só executa uma vez por intervalo.

Released under the MIT License.