Системный вызов Голанга / js js.NewCallback не определен - PullRequest
1 голос
/ 22 апреля 2019

Я новичок в go и wasm, и похоже, что эти проекты довольно быстро развиваются. Я читал введение в использование wasm в go , и кажется, что, хотя оно было написано в январе, оно уже устарело.

Я пытаюсь вызвать единственную функцию go, когда JavaScriptфункция вызывается.В примере сказано сделать что-то вроде этого:

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

Хотя, когда я пытаюсь скомпилировать это, я получаю эту ошибку:

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

Я проверил документацию и не вижу ссылки на NewCallback.Каков текущий «правильный» способ сделать это?

1 Ответ

2 голосов
/ 06 июня 2019
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))
...