docs: give a small example how JS<->wasm bridging is done

Этот коммит содержится в:
Ayke van Laethem 2018-10-31 17:41:53 +01:00
родитель 1b283c11c1
коммит 7ea9a32058
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: E97FF5335DFDFDED
2 изменённых файлов: 48 добавлений и 0 удалений

Просмотреть файл

@ -15,5 +15,6 @@ Contents:
docker
targets
microcontrollers
webassembly
faq
internals

47
docs/webassembly.rst Обычный файл
Просмотреть файл

@ -0,0 +1,47 @@
.. _webassembly:
WebAssembly
===========
.. highlight:: go
You can call a JavaScript function from Go and call a Go function from WebAssembly::
package main
// This calls a JS function from Go.
func main() {
println("adding two numbers:", add(2, 3)) // expecting 5
}
// This function is imported from JavaScript, as it doesn't define a body.
// You should define a function named 'main.add' in the WebAssembly 'env'
// module from JavaScript.
func add(x, y int)
// This function is exported to JavaScript, so can be called using
// exports.add() in JavaScript.
//go:export multiply
func multiply(x, y int) int {
return x * y;
}
.. highlight:: javascript
Related JavaScript would look something like this::
// Providing the environment object, used in WebAssembly.instantiateStreaming.
env: {
'main.add': function(x, y) {
return x + y
}
// ... other functions
}
// Calling the multiply function:
console.log('multiplied two numbers:', wasm.exports.multiply(5, 3));
A more complete example is provided in the `wasm example
<https://github.com/aykevl/tinygo/tree/master/src/examples/wasm>`_.