Slide 17
Slide 17 text
1. syscall/js.Global()
の利用
以下のように js.Global().Set("compress", ...)
とすると、JS
側からグローバル
な compress
関数を呼べる
// 受け取ったUint8Arrayをgzip圧縮して返す関数
var compressFunc = js.FuncOf(func(this js.Value, args []js.Value) any {
/* 中略 */
r, _ := compressor.Compress(src)
var buf bytes.Buffer
io.Copy(&buf, r)
ua := newUint8Array(buf.Len())
js.CopyBytesToJS(ua, buf.Bytes())
return ua
})
func main() {
js.Global().Set("compress", compressFunc)
select {}
}
https://github.com/syumai/go-wasm-gzipper/blob/master/main.go