UNPKG

@j03fr0st/pubg-ts

Version:

A comprehensive TypeScript wrapper for the PUBG API

20 lines (16 loc) 458 B
export class RequestDeduplicator { private pending = new Map<string, Promise<any>>(); async deduplicate<T>(key: string, factory: () => Promise<T>): Promise<T> { const pendingRequest = this.pending.get(key); if (pendingRequest) { return pendingRequest as Promise<T>; } const promise = factory(); this.pending.set(key, promise); try { return await promise; } finally { this.pending.delete(key); } } }