From 8625d45152cd5a39b3cac0fdf8a4997feeb017ce Mon Sep 17 00:00:00 2001 From: Shusui MOYATANI Date: Wed, 20 Dec 2023 20:40:35 +0900 Subject: [PATCH] fix yield --- relay.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/relay.ts b/relay.ts index 212d910..e86e5e6 100644 --- a/relay.ts +++ b/relay.ts @@ -12,6 +12,15 @@ export function relayConnect(url: string) { return relay } +async function yieldThread() { + return new Promise((resolve) => { + const ch = new MessageChannel(); + ch.port1.addEventListener('message', () => resolve()); + ch.port2.postMessage(0); + ch.port1.start(); + }); +} + export class Relay { public readonly url: string private _connected: boolean = false @@ -117,7 +126,7 @@ export class Relay { if (false === this.handleNext()) { break } - await Promise.resolve() + await yieldThread() } this.queueRunning = false }