From 75924a474796fd4ae2929e0b06f40d3dd20819e0 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Wed, 6 Mar 2024 00:26:07 +0800 Subject: [PATCH] migrate the logic of findAndLocateExistedChromiumExecutable to worker to prevent ui being block --- .../CHECK_AND_DOWNLOAD_DEPENDENCIES/index.ts | 18 ++++++++++++------ ...k-and-locate-existed-chromium-executable.ts | 18 ++++++++++++++++-- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/packages/ui/src/main/flow/CHECK_AND_DOWNLOAD_DEPENDENCIES/index.ts b/packages/ui/src/main/flow/CHECK_AND_DOWNLOAD_DEPENDENCIES/index.ts index 0cddd9d..ab4661f 100644 --- a/packages/ui/src/main/flow/CHECK_AND_DOWNLOAD_DEPENDENCIES/index.ts +++ b/packages/ui/src/main/flow/CHECK_AND_DOWNLOAD_DEPENDENCIES/index.ts @@ -24,11 +24,19 @@ export enum DOWNLOAD_ERROR_EXIT_CODE { } async function findAndLocateExistedChromiumExecutable(): Promise { - const worker: Worker = new CheckAndLocateExistedChromiumExecutableWorker() - worker.on('message', () => { - debugger + return new Promise((resolve, reject) => { + const worker: Worker = new CheckAndLocateExistedChromiumExecutableWorker() + worker.once('message', (data) => { + if (data.type === 'RESULT') { + resolve(data.data) + } + }) + worker.once('message', (data) => { + if (data.type === 'ERROR') { + reject(data.error) + } + }) }) - // TODO: }; export const getAnyAvailablePuppeteerExecutable = async (): Promise => { @@ -38,14 +46,12 @@ export const getAnyAvailablePuppeteerExecutable = async (): Promise { + try { + const result = await findAndLocateExistedChromiumExecutable() + parentPort?.postMessage({ + type: 'RESULT', + data: result + }) + } catch (error) { + parentPort?.postMessage({ + type: 'ERROR', + error + }) + } -console.log(globalThis, findAndLocateExistedChromiumExecutable) -debugger + process.exit(0) +})()