You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-03 04:01:40 +03:00
RESP3 Support - Some commands responses in RESP3 aren't stable yet and therefore return an "untyped" ReplyUnion. Sentinel TypeMapping Correctly types Multi commands Note: some API changes to be further documented in v4-to-v5.md
25 lines
481 B
TypeScript
25 lines
481 B
TypeScript
import { SinglyLinkedList } from '../client/linked-list';
|
|
|
|
export class WaitQueue<T> {
|
|
#list = new SinglyLinkedList<T>();
|
|
#queue = new SinglyLinkedList<(item: T) => unknown>();
|
|
|
|
push(value: T) {
|
|
const resolve = this.#queue.shift();
|
|
if (resolve !== undefined) {
|
|
resolve(value);
|
|
return;
|
|
}
|
|
|
|
this.#list.push(value);
|
|
}
|
|
|
|
shift() {
|
|
return this.#list.shift();
|
|
}
|
|
|
|
wait() {
|
|
return new Promise<T>(resolve => this.#queue.push(resolve));
|
|
}
|
|
}
|