| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/WebAssembly/Reference/JavaScript_interface/JSTag_static | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Die JSTag-Eigenschaft im Nur-Lese-Modus des WebAssembly Interfaces ist ein eingebautes WebAssembly.Tag, das Ausnahmen reprsentiert, die im JavaScript-Host geworfen werden es ermglicht, dass Ausnahmen, die in JavaScript geworfen werden, innerhalb eines Wasm-Moduls behandelt werden.
(module
(tag $js_tag (import "env" "js_tag") (param externref))
(import "env" "do_work" (func $do_work))
(import "env" "log" (func $log (param externref)))
(func $try_and_catch
(block $handler (result externref)
(try_table (catch $js_tag $handler)
;; Call a JS function that throws
(call $do_work)
)
(return)
)
;; The JS Error object is on the stack as an externref
;; Pass it back to JS for logging
(call $log)
)
(export "try_and_catch" (func $try_and_catch))
)
async function run() {
const { instance } = await WebAssembly.instantiateStreaming(
fetch("{%wasm-url%}"),
{
env: {
js_tag: WebAssembly.JSTag,
// This JS function throws, which Wasm will catch via JSTag
do_work() {
throw new Error("An exception was thrown in JS");
},
log(error) {
// errRef is the JS Error object passed back as an externref
console.log(error.message);
},
},
},
);
instance.exports.try_and_catch();
}
run();
Ein WebAssembly.Tag mit einem Typ von externref ((tag (param externref))).
| Spezifikation |
|---|
| WebAssembly JavaScript Interface # dom-webassembly-jstag |
WebAssembly.TagDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |