我对 go 和 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
的引用。目前“正确”的做法是什么?
最佳答案
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))
关于javascript - Golang 的 syscall/js js.NewCallback 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55800163/