TypeError:WebAssembly实例化:Imports参数必须存在且必须是对象

时间:2018-04-03 16:46:06

标签: webassembly

我正在关注这个hello world教程: https://steemit.com/eos/@skenan/eos-development-for-beginners-webassembly

我收到此错误: TypeError:WebAssembly实例化:Imports参数必须存在且必须是对象

知道可能导致它的原因吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

您收到此错误的原因可能是因为: 启动Webassembly实例时,还需要指定导入对象。就像:

WebAssembly.instantiate(module, imports);

嗯,这里我只是举一个简单的例子来演示步骤:

    imports.env = imports.env || {}

    Object.assign(imports.env, {
      tableBase: module.tableBase,
      table: new WebAssembly.Table({
        initial: 4,
        element: 'anyfunc',
      }),
      print:function(msg){
        console.log(msg);
      }
    });
    return new WebAssembly.Instance(module, imports)

答案 1 :(得分:1)

按照本教程,我无法重现此错误。这对我来说可以。您是否对C源代码或JavaScript加载代码进行了任何更改?

如果您实例化模块而未向其提供所有必需的导入,则会出现您看到的错误。但是没有像教程中那样的导入的模块可以在没有导入对象的情况下实例化。文档在这里:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/instantiate#Parameters