From 4784004d29edfd188f86ec33b13c02002c77f887 Mon Sep 17 00:00:00 2001 From: Forrest Li Date: Tue, 2 Jan 2024 17:26:54 -0500 Subject: [PATCH] fix(loadPipelineModule): load only once --- .../src/pipeline/web-workers/load-pipeline-module.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/core/typescript/itk-wasm/src/pipeline/web-workers/load-pipeline-module.ts b/packages/core/typescript/itk-wasm/src/pipeline/web-workers/load-pipeline-module.ts index 36ac7b287..55d8447f6 100644 --- a/packages/core/typescript/itk-wasm/src/pipeline/web-workers/load-pipeline-module.ts +++ b/packages/core/typescript/itk-wasm/src/pipeline/web-workers/load-pipeline-module.ts @@ -1,8 +1,8 @@ import loadEmscriptenModule from '../internal/load-emscripten-module-web-worker.js' import PipelineEmscriptenModule from '../pipeline-emscripten-module.js' -// To cache loaded pipeline modules -const pipelineToModule: Map = new Map() +// To cache loaded pipeline modules wrapped in a Promise +const pipelineToModule: Map> = new Map() async function loadPipelineModule (pipelinePath: string | object, baseUrl: string): Promise { let moduleRelativePathOrURL: string | URL = pipelinePath as string @@ -13,10 +13,10 @@ async function loadPipelineModule (pipelinePath: string | object, baseUrl: strin pipeline = moduleRelativePathOrURL.href } if (pipelineToModule.has(pipeline)) { - pipelineModule = pipelineToModule.get(pipeline) as PipelineEmscriptenModule + pipelineModule = await pipelineToModule.get(pipeline) as PipelineEmscriptenModule } else { - pipelineToModule.set(pipeline, await loadEmscriptenModule(moduleRelativePathOrURL, baseUrl) as PipelineEmscriptenModule) - pipelineModule = pipelineToModule.get(pipeline) as PipelineEmscriptenModule + pipelineToModule.set(pipeline, loadEmscriptenModule(moduleRelativePathOrURL, baseUrl) as Promise) + pipelineModule = await pipelineToModule.get(pipeline) as PipelineEmscriptenModule } return pipelineModule }