gpt4 book ai didi

javascript - 从 JavaScript 终止 WebAssembly

转载 作者:行者123 更新时间:2023-11-30 14:51:26 25 4
gpt4 key购买 nike

是否可以终止正在运行的 WebAssembly 代码并从 JavaScript 中清除所有剩余资源?

一般情况是这样的。 JS 初始化一个 WASM 模块并调用一个导出函数。在稍后的某个时间点,WASM 代码调用一个导入的函数 f 将控制权交还给 JS。 f 做了一些事情,并根据结果决定是否让 WASM 继续运行。

两种情况:

  • WASM 应该保持运行。 f 只是返回。
  • f 决定终止 WASM 功能并可能清理任何 WASM 相关资源。它可以?怎么样?

如果可以更轻松地分析一个更具体的示例,请考虑 execve 的工作原理。如果调用失败,它只会返回指示失败。但是,如果它成功,它不会返回 - 一个广泛的过度简化就是说它终止调用者并在它的位置启动一个新的调用者(保持一些环境不变)。

最佳答案

可能终止调用者的唯一方法——无论调用者是 Wasm 还是 JavaScript——是抛出异常。这让调用者做出充分的 react 。特别是,如果它需要进行清理,那么它应该被编写为捕获可能的异常、执行清理并重新抛出(或者,等效地,在可用时使用 try-finally 构造)。

Wasm 目前不直接支持异常处理,但可以通过 thunk 输出到 JavaScript 来模拟。 Wasm 的 future 版本将具有适当的异常处理支持。

关于javascript - 从 JavaScript 终止 WebAssembly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48049187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com