无法使用WebAssembly模块中的导出函数?

时间:2017-08-15 17:56:41

标签: webassembly

以下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 个答案:

答案 0 :(得分: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));
    })
});