2

以下 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函数。

4

1 回答 1

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));
    })
});
于 2017-08-15T20:00:21.720 回答