栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何从node.js使用WebAssembly?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何从node.js使用WebAssembly?

您可以构建没有JS胶水文件的.wasm文件(独立)。

创建一个test.c文件:

int add(int a, int b) {  return a + b;}

生成独立的.wasm文件:

emcc test.c -O2 -s WASM=1 -s SIDE_MODULE=1 -o test.wasm

在Node.js应用中使用.wasm文件:

const util = require('util');const fs = require('fs');var source = fs.readFileSync('./test.wasm');const env = {    memorybase: 0,    tablebase: 0,    memory: new WebAssembly.Memory({      initial: 256    }),    table: new WebAssembly.Table({      initial: 0,      element: 'anyfunc'    })  }var typedArray = new Uint8Array(source);WebAssembly.instantiate(typedArray, {  env: env}).then(result => {  console.log(util.inspect(result, true, 0));  console.log(result.instance.exports._add(9, 9));}).catch(e => {  // error caught  console.log(e);});

关键部分是WebAssembly.instantiate()的第二个参数。没有它,您将收到错误消息:

TypeError:WebAssembly实例化:imports参数必须存在,并且在启动时位于Function.Module.runMain(module.js:695:11)的process._tickCallback(internal
/ process /
next_tick.js:188:7)处(bootstrap_node.js:191:16)在bootstrap_node.js:612:3



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/382954.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号