341
342
queue<T>(key: TKey, promiseTask: ITask<Promise<T>>): Promise<T> {
343
>
const runningPromise = this.promiseMap.get(key) ?? Promise.resolve();
async.ts
344
>
const newPromise = runningPromise
345
>
.catch(() => { })
346
>
.then(promiseTask)
347
>
.finally(() => {
348
>
if (this.promiseMap.get(key) === newPromise) {
349
>
this.promiseMap.delete(key);
350
>
}
351
>
});
352
>
this.promiseMap.set(key, newPromise);
353
>
return newPromise;
354
>
}
355
356
peek(key: TKey): Promise<unknown> | undefined {