Можно ли вызвать функцию Go WebAssembly, отличную от main
, в Javascript?
Позвольте мне сначала показать, что я сделал. Функции My Go определены следующим образом:
package main
import "fmt"
func main() {
fmt.Println("it works!")
}
func add(a, b int) int {
return a + b
}
Я могу вызвать только функцию main
:
const go = new Go();
const data = await fetch("http://localhost:3333/main.wasm");
const result = await WebAssembly.instantiateStreaming(data, go.importObject);
go.run(result.instance);
, который возвращает it works!
как ожидалось.
Однако всякий раз, когда я пытаюсь вызвать функцию add
, я получаю TypeError: Cannot read property 'add' of undefined at Welcome.getWasm
, потому что оба result.exports
, result.instance.exports
не содержат мою функцию. Я также попытался использовать заглавную функцию Go, но безрезультатно.
Таким образом, я начал задаваться вопросом, в чем может быть проблема - возможно ли даже вызвать случайную функцию Go из Javascript? Или я могу вызвать только функцию main()
по умолчанию?