UNPKG

@suissa/universal-queues

Version:

Factory universal para mensageria (RabbitMQ, Kafka, SQS) para sistemas distribuĂ­dos.

17 lines (15 loc) • 506 B
export class TimeoutError extends Error { constructor(msg = 'Operation timed out') { super(msg); this.name = 'TimeoutError'; } } export function withTimeout<T>(p: Promise<T>, ms: number, label = 'op'): Promise<T> { return new Promise<T>((resolve, reject) => { const t = setTimeout(() => reject(new TimeoutError(`${label} timeout after ${ms}ms`)), ms); p.then( (v) => { clearTimeout(t); resolve(v); }, (e) => { clearTimeout(t); reject(e); } ); }); }