From 18300c0f9392d7f0544f630a831b5e30c43dd834 Mon Sep 17 00:00:00 2001 From: Jordan Ribbink Date: Thu, 9 Nov 2023 15:08:18 -0800 Subject: [PATCH] fix queue-microtask --- packages/util-actor/src/index.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/util-actor/src/index.ts b/packages/util-actor/src/index.ts index dd9f8ad2f..2c8fc349e 100644 --- a/packages/util-actor/src/index.ts +++ b/packages/util-actor/src/index.ts @@ -1,7 +1,12 @@ import {mailbox as createMailbox, type IMailbox} from "./mailbox" -// eslint-disable-next-line @typescript-eslint/no-var-requires -const queueMicrotask = require("queue-microtask") +let promise: any +const _queueMicrotask = (cb: any) => + (promise || (promise = Promise.resolve())).then(cb).catch((err: any) => + setTimeout(() => { + throw err + }, 0) + ) export const INIT = "INIT" export const SUBSCRIBE = "SUBSCRIBE" @@ -189,7 +194,7 @@ export const spawn = ( fn = fromHandlers(fnOrHandlers) else fn = fnOrHandlers - queueMicrotask(async () => { + _queueMicrotask(async () => { await fn(ctx) kill(addr) })