请问 webassembly 返回数组在 JS 中应如何获取 ?
例如:
float* test () {
static float data[3];
data[0] = 0.0;
data[1] = 1.0;
data[2] = 2.0;
return data;
}
// 获取 wasm
function loadWebAssembly(filename, imports) {
// Fetch the file and compile it
return fetch(filename)
.then(response => response.arrayBuffer())
.then(buffer => WebAssembly.compile(buffer))
.then(module => {
// Create the imports for the module, including the
// standard dynamic library imports
imports = imports || {}
imports.env = imports.env || {}
imports.env.__memory_base = imports.env.__memory_base || 0
imports.env.__table_base = imports.env.__table_base || 0
if (!imports.env.memory) {
imports.env.memory = new WebAssembly.Memory({ initial: 256 })
}
if (!imports.env.table) {
imports.env.table = new WebAssembly.Table({ initial: 0, element: 'anyfunc' })
}
// Create the instance.
return new WebAssembly.Instance(module, imports)
});
}
const instance = await loadWebAssembly('test.wasm')
console.log(instance.exports._test())
转为 wasm 之后,请问在 js 交互中,应如何获取返回的数组?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
同问,这个返回的一个数字好像是结果在内存上的一个偏移量,但是怎么取我也很惆怅