1
0
mirror of https://github.com/redis/node-redis.git synced 2025-08-03 04:01:40 +03:00
Files
node-redis/packages/client/lib/sentinel/wait-queue.ts
Shaya Potter b2d35c5286 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
2024-10-15 17:46:52 +03:00

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));
}
}