You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-06 02:15:48 +03:00
V5 bringing RESP3, Sentinel and TypeMapping to node-redis
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
This commit is contained in:
24
packages/client/lib/sentinel/wait-queue.ts
Normal file
24
packages/client/lib/sentinel/wait-queue.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
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));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user