ここには矛盾があります:javascript/typescriptで非同期ブロッキングキューを作成したいと思います(これは、typescriptなしで実装できます)。基本的には、JavaのBlockingQueue
のようなものを実装したいのですが、実際にはブロックされているのではなく、非同期になり、デキューを待つことができます。ここでJS/TSで擬似ブロック非同期キューを実装する方法は?
は、私が実装するインタフェースです:
interface AsyncBlockingQueue<T> {
enqueue(t: T): void;
dequeue(): Promise<T>;
}
そして、私はそうのようにそれを使用したい:
// enqueue stuff somewhere else
async function useBlockingQueue() {
// as soon as something is enqueued, the promise will be resolved:
const value = await asyncBlockingQueue.dequeue();
// this will cause it to await for a second value
const secondValue = await asyncBlockingQueue.dequeue();
}
任意のアイデア?
beautiful !!!!!! –
私はstackoverflowに文字を最小限にするために '!'を追加してくれてありがとうございます –