Estoy tratando de cargar una biblioteca WASM desde otra aplicación de nodo js (ambos usan un paquete web). En la biblioteca WASM, tengo el siguiente código para exportar la funcionalidad.
export default import("./pkg") .then(s => { let result = s.initialize_sync(); console.log("result = ", result); return s; }).catch(error => { console.error(error); throw error; });Y en la solicitud, tengo lo siguiente.
let s = await import("s-wasm"); console.log("2 s = ", s);Obtengo las siguientes líneas de registro cuando ejecuto la aplicación.
2 s = { default: {} } result = initializedLo que estoy esperando:
result = initialized 2 s = { default: {} } Quiero que se imprima la línea 2 s = después de cargar WASM. pero se llama antes de que se cargue el WASM. Cómo logro esto ? Qué estoy haciendo mal aquí ?
Te sugiero que escribas tu módulo como
export * from "./pkg"; import { initialize_sync } from "./pkg"; console.log("result = ", initialize_sync());o (si realmente es necesario) con espera de nivel superior:
const s = await import("./pkg") console.log("result = ", s.initialize_sync()); export default s; para que no esté exportando por defecto una promesa para s .
Si no lo hace, el código de su aplicación deberá ser
let s = await (await import("s-wasm")).default; console.log("2 s = ", s);