小编Roc*_*icv的帖子

如何检测 Emscripten 生成的 .js 何时完成加载 wasm,以便我可以运行调用它的 JS 函数?

我正在使用 Emscripten 将一些 C 代码编译为 WebAssembly。这是我的 Makefile 中的最后一个 emcc 调用:

emcc $(CFLAGS) iva.a -o iva.js
Run Code Online (Sandbox Code Playgroud)

它按预期工作并生成 .js 文件和 .wasm 文件。JS 加载到我的 HTML 页面中,如下所示:

<script src="../dist/iva.js">
Run Code Online (Sandbox Code Playgroud)

它会正确加载并实例化 WebAssembly 代码iva.wasm。加载页面后不久,此消息就会出现在控制台中:

Fetch finished loading: GET "http://localhost:6931/dist/iva.wasm".
Run Code Online (Sandbox Code Playgroud)

我认为这意味着我的 WebAssembly 是通过 fetch() 加载的,也许在等待一些处理时,我可以通过控制台访问我的函数:

Module._init_display_system()
Run Code Online (Sandbox Code Playgroud)

并获取返回值。这是正确的并且一切正常。

显然,我也应该能够通过脚本来做到这一点。但是,我看不到一种仅在实例化 WebAssembly后运行函数的方法。我感觉我错过了一些相当明显的东西。

无论如何,我该怎么做?

javascript emscripten webassembly

5
推荐指数
2
解决办法
4854
查看次数

获取 Uint16Array 成员的单独低字节和高字节

所以我在 JavaScript 中有一个 Uint16Array:

let myArray = new Uint16Array(10)
Run Code Online (Sandbox Code Playgroud)

现在我想将该数组中的一个特定值分解为两个 8 位值 - 该值的低字节和高字节。

myArray[5] = 300 // How to get low, high byte of 16-bit value 300?
Run Code Online (Sandbox Code Playgroud)

产生的两个值应该是number type.

做到这一点最简单的方法是什么?

javascript bit-manipulation typed-arrays

2
推荐指数
1
解决办法
1809
查看次数