blob: 001340a9f3191eee250d6b78029eb819a0e6e1cb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
const queueMap = new Map<string, Promise<null>>();
export function queue<T>(key: string, func: () => Promise<T>): Promise<T> {
const last = queueMap.get(key);
if (last == null) {
const promise = func();
queueMap.set(key, promise.then(null, null));
return promise;
} else {
const promise = last.then(() => func());
queueMap.set(key, promise.then(null, null));
return promise;
}
}
|