类型错误:WebAssembly 实例化:导入参数必须存在并且必须是一个对象

use*_*171 11 webassembly

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

我收到此错误:

类型错误:WebAssembly 实例化:导入参数必须存在并且必须是一个对象

知道可能是什么原因造成的吗?

小智 5

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

WebAssembly.instantiate(module, imports);
Run Code Online (Sandbox Code Playgroud)

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

    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)
Run Code Online (Sandbox Code Playgroud)

  • “导入”对象从哪里来? (11认同)

Mau*_*olf 2

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

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