Golang的syscall / js js.NewCallback未定义

时间:2019-04-22 19:41:47

标签: javascript go webassembly

我和Wasm都是新手,看来这些项目进展很快。 I was reading an introduction to using wasm in go,尽管它是在一月份写的,但它已经过时了。

我正在尝试在调用JavaScript函数时调用单个go函数。该示例说要执行以下操作:

 js.Global().Set("jsFunctionName", js.NewCallback(goCallback))

尽管当我尝试编译它时,却出现此错误:

./webassembly.go:54:35: undefined: js.NewCallback

I checked the documentation,看不到对NewCallback的引用。目前应该执行的“正确”方法是什么?

1 个答案:

答案 0 :(得分:2)

js.Global().Set("jsFunctionName", js.NewCallback(goCallback))

应为:

js.Global().Set("jsFunctionName", js.FuncOf(goCallback))

请注意,goCallback的签名已更改,并且从Go 1.12开始,现在支持返回值。 例如,以下是公开简单的添加功能的方法:

// function definition
func add(this js.Value, i []js.Value) interface{} {
  return js.ValueOf(i[0].Int()+i[1].Int())
}

// exposing to JS
js.Global().Set("add", js.FuncOf(add))