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