我想在我的React应用程序中使用WebAssembly模块。应用启动时将加载模块。现在,我想在另一个Javascript模块中重用wasm模块。
如何在其他JS模块中重用这些wasm模块?我真的必须再次加载模块吗?
在主模块中加载wasm:
Promise.all([
import("webassembly-tests-rust")
//...
])
.then(modules => {
// how to store the module to make it available in other modules?
wasm["rust"] = modules[0];
//...
})
其他模块:
wasm.rust.somefunction();
答案 0 :(得分:0)
它会这样工作吗?
wasm.js
let wasm
export const getWasm = () =>
wasm
? Promise.resolve(wasm)
: import('webassembly-tests-rust').then(_wasm => {
wasm = _wasm;
return wasm;
})
module.js
import getWasm from 'wasm.js'
Promise.all([
getWasm
//...
])
.then(modules => {
modules[0].someFunction = () => console.log('foo')
//...
})
其他模块:
import getWasm from 'wasm.js'
getWasm().then(wasm => wasm.somefunction()) // console.log('foo')