Spec-Zone.ru › Go

Пакет js

  • import "syscall/js"
  • Обзор
  • Индекс
  • Примеры

Обзор

Пакет js предоставляет доступ к среде хоста WebAssembly при использовании архитектуры js/wasm. Его API основан на семантике JavaScript.

Этот пакет ЭКСПЕРИМЕНТАЛЬНЫЙ. В настоящее время его цель — только позволить запускать тесты, но пока не предоставлять полный API для пользователей. Он освобожден от обещания совместимости с Go.

Индекс

  • func CopyBytesToGo(dst []byte, src Value) int
  • func CopyBytesToJS(dst Value, src []byte) int
  • тип Error
  • func (e Error) Error() string
  • тип Func
  • func FuncOf(fn func(this Value, args []Value) any) Func
  • func (c Func) Release()
  • тип Type
  • func (t Type) String() string
  • тип Value
  • func Global() Value
  • func Null() Value
  • func Undefined() Value
  • func ValueOf(x any) Value
  • func (v Value) Bool() bool
  • func (v Value) Call(m string, args ...any) Value
  • func (v Value) Delete(p string)
  • func (v Value) Equal(w Value) bool
  • 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 ...any) Value
  • func (v Value) IsNaN() bool
  • func (v Value) IsNull() bool
  • func (v Value) IsUndefined() bool
  • func (v Value) Length() int
  • func (v Value) New(args ...any) Value
  • func (v Value) Set(p string, x any)
  • func (v Value) SetIndex(i int, x any)
  • func (v Value) String() string
  • func (v Value) Truthy() bool
  • func (v Value) Type() Type
  • тип ValueError
  • func (e *ValueError) Error() string

Примеры

FuncOf

Файлы пакета

func.go js.go

func CopyBytesToGo

func CopyBytesToGo(dst []byte, src Value) int

CopyBytesToGo копирует байты из src в dst. Вызывает панику, если src не является Uint8Array или Uint8ClampedArray. Возвращает количество скопированных байтов, которое будет минимальным из длин src и dst.

func CopyBytesToJS

func CopyBytesToJS(dst Value, src []byte) int

CopyBytesToJS копирует байты из src в dst. Вызывает панику, если dst не является Uint8Array или Uint8ClampedArray. Возвращает количество скопированных байтов, которое будет минимальным из длин src и dst.

тип Error

Error оборачивает ошибку JavaScript.

type Error struct {
    // Value is the underlying JavaScript error value.
    Value
}

func (Error) Error

func (e Error) Error() string

Error реализует интерфейс error.

тип Func

Func — это обернутая Go-функция, которая должна вызываться из JavaScript.

type Func struct {
    Value // the JavaScript function that invokes the Go function
    // contains filtered or unexported fields
}

func FuncOf

func FuncOf(fn func(this Value, args []Value) any) Func

FuncOf возвращает функцию для использования в JavaScript.

Go-функция fn вызывается со значением ключевого слова "this" JavaScript и аргументами вызова. Возвращаемое значение вызова — это результат Go-функции, преобразованный обратно в JavaScript в соответствии с ValueOf.

Вызов обернутой Go-функции из JavaScript приостановит цикл событий и запустит новую горутину. Другие обернутые функции, которые вызываются во время вызова из Go в JavaScript, выполняются в той же горутине.

Вследствие этого, если одна обернутая функция блокируется, цикл событий JavaScript заблокируется до возврата этой функции. Следовательно, вызов любой асинхронной JavaScript-API, которая требует цикла событий, например fetch (http.Client), приведет к немедленному тупику. Поэтому функция, которая блокирует, должна явно запускать новую горутину.

Func.Release должен вызываться для освобождения ресурсов, когда функция больше не будет вызываться.

Пример

Код:

var cb js.Func
cb = js.FuncOf(func(this js.Value, args []js.Value) any {
    fmt.Println("button clicked")
    cb.Release() // release the function if the button will not be clicked again
    return nil
})
js.Global().Get("document").Call("getElementById", "myButton").Call("addEventListener", "click", cb)

func (Func) Release

func (c Func) Release()

Release освобождает ресурсы, выделенные для функции. После вызова Release функция не должна вызываться. Разрешено вызывать Release, пока функция всё ещё выполняется.

тип Type

Type представляет тип JavaScript значения Value.

type Type int
const (
    TypeUndefined Type = iota
    TypeNull
    TypeBoolean
    TypeNumber
    TypeString
    TypeSymbol
    TypeObject
    TypeFunction
)

func (Type) String

func (t Type) String() string

тип Value

Value представляет значение JavaScript. Нулевое значение — это значение JavaScript "undefined". Значения могут проверяться на равенство с помощью метода Equal.

type Value struct {
    // contains filtered or unexported fields
}

func Global

func Global() Value

Global возвращает глобальный объект JavaScript, обычно "window" или "global".

func Null

func Null() Value

Null возвращает значение JavaScript "null".

func Undefined

func Undefined() Value

Undefined возвращает значение JavaScript "undefined".

func ValueOf

func ValueOf(x any) Value

ValueOf возвращает x как значение JavaScript:

| Go                     | JavaScript             |
| ---------------------- | ---------------------- |
| js.Value               | [its value]            |
| js.Func                | function               |
| nil                    | null                   |
| bool                   | boolean                |
| integers and floats    | number                 |
| string                 | string                 |
| []interface{}          | new array              |
| map[string]interface{} | new object             |

Вызывает панику, если x не является одним из ожидаемых типов.

func (Value) Bool

func (v Value) Bool() bool

Bool возвращает значение v как bool. Вызывает панику, если v не является булевым значением JavaScript.

func (Value) Call

func (v Value) Call(m string, args ...any) Value

Call выполняет вызов JavaScript метода m значения v с заданными аргументами. Вызывает панику, если у v нет метода m. Аргументы преобразуются в значения JavaScript в соответствии с функцией ValueOf.

func (Value) Delete

func (v Value) Delete(p string)

Delete удаляет свойство JavaScript p значения v. Вызывает панику, если v не является объектом JavaScript.

func (Value) Equal

func (v Value) Equal(w Value) bool

Equal сообщает, равны ли v и w согласно оператору === JavaScript.

func (Value) Float

func (v Value) Float() float64

Float возвращает значение v как float64. Вызывает панику, если v не является числом JavaScript.

func (Value) Get

func (v Value) Get(p string) Value

Get возвращает свойство JavaScript p значения v. Вызывает панику, если v не является объектом JavaScript.

func (Value) Index

func (v Value) Index(i int) Value

Index возвращает индекс JavaScript i значения v. Вызывает панику, если v не является объектом JavaScript.

func (Value) InstanceOf

func (v Value) InstanceOf(t Value) bool

InstanceOf сообщает, является ли v экземпляром типа t согласно оператору instanceof JavaScript.

func (Value) Int

func (v Value) Int() int

Int возвращает значение v, усеченное до int. Вызывает панику, если v не является числом JavaScript.

func (Value) Invoke

func (v Value) Invoke(args ...any) Value

Invoke выполняет вызов JavaScript значения v с заданными аргументами. Вызывает панику, если v не является функцией JavaScript. Аргументы преобразуются в значения JavaScript в соответствии с функцией ValueOf.

func (Value) IsNaN

func (v Value) IsNaN() bool

IsNaN сообщает, является ли v значением JavaScript "NaN".

func (Value) IsNull

func (v Value) IsNull() bool

IsNull сообщает, является ли v значением JavaScript "null".

func (Value) IsUndefined

func (v Value) IsUndefined() bool

IsUndefined сообщает, является ли v значением JavaScript "undefined".

func (Value) Length

func (v Value) Length() int

Length возвращает свойство JavaScript "length" значения v. Вызывает панику, если v не является объектом JavaScript.

func (Value) New

func (v Value) New(args ...any) Value

New использует оператор JavaScript "new" со значением v в качестве конструктора и заданными аргументами. Вызывает панику, если v не является функцией JavaScript. Аргументы преобразуются в значения JavaScript в соответствии с функцией ValueOf.

func (Value) Set

func (v Value) Set(p string, x any)

Set устанавливает свойство JavaScript p значения v в ValueOf(x). Вызывает панику, если v не является объектом JavaScript.

func (Value) SetIndex

func (v Value) SetIndex(i int, x any)

SetIndex устанавливает индекс JavaScript i значения v в ValueOf(x). Вызывает панику, если v не является объектом JavaScript.

func (Value) String

func (v Value) String() string

String возвращает значение v как строку. String — это специальный случай из-за соглашения Go о методе String. В отличие от других методов-получателей, он не вызывает панику, если тип v не TypeString. Вместо этого он возвращает строку вида "<T>" или "<T: V>", где T — тип v, а V — строковое представление значения v.

func (Value) Truthy

func (v Value) Truthy() bool

Truthy возвращает значение JavaScript "истинности" значения v. В JavaScript ложными (falsy) являются false, 0, "", null, undefined и NaN, а всё остальное — истинным (truthy). См. https://developer.mozilla.org/en-US/docs/Glossary/Truthy.

func (Value) Type

func (v Value) Type() Type

Type возвращает тип JavaScript значения v. Он похож на оператор typeof JavaScript, за исключением того, что он возвращает TypeNull вместо TypeObject для null.

тип ValueError

ValueError возникает, когда метод Value вызывается на Value, который его не поддерживает. Такие случаи документированы в описании каждого метода.

type ValueError struct {
    Method string
    Type   Type
}

func (*ValueError) Error

func (e *ValueError) Error() string

© Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
http://golang.org/pkg/syscall/js/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API