| 12345678910111213141516171819202122232425 |
- //go:build js && wasm
- package ultraviolet
- import "syscall/js"
- func WebSetHandlers(handlerCreate func([]js.Value, js.Value, js.Value), handlerUpdate func([]js.Value, js.Value, js.Value)) {
- js.Global().Set("Create", webWrap(handlerCreate))
- js.Global().Set("Update", webWrap(handlerUpdate))
- }
- func webWrap(handler func([]js.Value, js.Value, js.Value)) js.Func {
- wrapper := func(this js.Value, args1 []js.Value) interface{} {
- return js.Global().Get("Promise").New(
- js.FuncOf(
- func(this js.Value, args2 []js.Value) interface{} {
- go handler(args1, args2[0], args2[1])
- return nil
- },
- ),
- )
- }
- return js.FuncOf(wrapper)
- }
|