无法使用从 WebAssembly 模块导出的函数?
Posted
技术标签:
【中文标题】无法使用从 WebAssembly 模块导出的函数?【英文标题】:Unable to use exported function from WebAssembly module? 【发布时间】:2017-08-15 17:56:41 【问题描述】:以下 javascript 代码抛出错误myMathModule.exports is undefined
:
<script>
fetch("test.wasm")
.then(function(response)
return response.arrayBuffer();
)
.then(function(buffer)
var moduleBufferView = new Uint8Array(buffer);
var myMathModule = WebAssembly.instantiate(moduleBufferView);
for(var i = 0; i < 5; i++)
console.log(myMathModule.exports.doubleExp(i));
);
</script>
test.wasm
导出doubleExp
函数。
【问题讨论】:
【参考方案1】:WebAssembly.instantiate
是一个承诺。您正在尝试使用承诺在完成时返回的WebAssembly.Instance
。类似的东西
fetch("test.wasm")
.then(function(response)
return response.arrayBuffer();
)
.then(function(buffer)
var moduleBufferView = new Uint8Array(buffer);
WebAssembly.instantiate(moduleBufferView)
.then(function(instantiated)
const instance = instantiated.instance;
console.log(instance.exports.doubleExp(i));
)
);
【讨论】:
以上是关于无法使用从 WebAssembly 模块导出的函数?的主要内容,如果未能解决你的问题,请参考以下文章
WebAssembly:将命名空间从 C++ 库导出到 JavaScript
WebAssembly技术_JS调用C函数示例_传递参数方法导出