Documentation ¶
Overview ¶
Package js gives access to the WebAssembly host environment when using the js/wasm architecture. Its API is based on JavaScript semantics.
This package is EXPERIMENTAL. Its current scope is only to allow tests to run, but not yet to provide a comprehensive API for users. It is exempt from the Go compatibility promise.
Index ¶
- type Callback
- type Error
- type EventCallbackFlag
- type Value
- func (v Value) Bool() bool
- func (v Value) Call(m string, args ...interface{}) Value
- func (v Value) Float() float64
- func (v Value) Get(p string) Value
- func (v Value) Index(i int) Value
- func (v Value) InstanceOf(t Value) bool
- func (v Value) Int() int
- func (v Value) Invoke(args ...interface{}) Value
- func (v Value) Length() int
- func (v Value) New(args ...interface{}) Value
- func (v Value) Set(p string, x interface{})
- func (v Value) SetIndex(i int, x interface{})
- func (v Value) String() string
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Callback ¶
type Callback struct {
// contains filtered or unexported fields
}
Callback is a Go function that got wrapped for use as a JavaScript callback. A Callback can be passed to functions of this package that accept interface{}, for example Value.Set and Value.Call.
func NewCallback ¶
NewCallback returns a wrapped callback function. It can be passed to functions of this package that accept interface{}, for example Value.Set and Value.Call.
Invoking the callback in JavaScript will queue the Go function fn for execution. This execution happens asynchronously on a special goroutine that handles all callbacks and preserves the order in which the callbacks got called. As a consequence, if one callback blocks this goroutine, other callbacks will not be processed. A blocking callback should therefore explicitly start a new goroutine.
Callback.Close must be called to free up resources when the callback will not be used any more.
Example ¶
var cb js.Callback cb = js.NewCallback(func(args []js.Value) { fmt.Println("button clicked") cb.Close() // close the callback if the button will not be clicked again }) js.Global().Get("document").Call("getElementById", "myButton").Call("addEventListener", "click", cb)
Output:
func NewEventCallback ¶
func NewEventCallback(flags EventCallbackFlag, fn func(event Value)) Callback
NewEventCallback returns a wrapped callback function, just like NewCallback, but the callback expects to have exactly one argument, the event. Depending on flags, it will synchronously call event.preventDefault, event.stopPropagation and/or event.stopImmediatePropagation before queuing the Go function fn for execution.
type Error ¶
type Error struct { // Value is the underlying JavaScript error value. Value }
Error wraps a JavaScript error.
type EventCallbackFlag ¶
type EventCallbackFlag int
const ( // PreventDefault can be used with NewEventCallback to call event.preventDefault synchronously. PreventDefault EventCallbackFlag = 1 << iota // StopPropagation can be used with NewEventCallback to call event.stopPropagation synchronously. StopPropagation // StopImmediatePropagation can be used with NewEventCallback to call event.stopImmediatePropagation synchronously. StopImmediatePropagation )
type Value ¶
type Value struct {
// contains filtered or unexported fields
}
Value represents a JavaScript value.
func Global ¶
func Global() Value
Global returns the JavaScript global object, usually "window" or "global".
func (Value) Call ¶
Call does a JavaScript call to the method m of value v with the given arguments. It panics if v has no method m.
func (Value) Float ¶
Float returns the value v as a float64. It panics if v is not a JavaScript number.
func (Value) InstanceOf ¶
InstanceOf reports whether v is an instance of type t according to JavaScript's instanceof operator.
func (Value) Int ¶
Int returns the value v truncated to an int. It panics if v is not a JavaScript number.
func (Value) Invoke ¶
Invoke does a JavaScript call of the value v with the given arguments. It panics if v is not a function.
func (Value) New ¶
New uses JavaScript's "new" operator with value v as constructor and the given arguments. It panics if v is not a function.