获取 WebAssembly 实例化流处理进度

问题描述

WebAssembly.instantiateStreaming 是下载和实例化 .wasm 模块的 fastest 方式,但是对于大型 .wasm 文件,它仍然需要很长时间。在这种情况下,仅显示微调器并不能提供足够的用户反馈。

有没有办法使用 WebAssembly.instantiateStreaming api 并获取某种形式的进度事件,以便可以向用户显示 eta?理想情况下,我希望能够显示百分比进度条/估计剩余时间指示器,以便用户知道他们需要等待多长时间。

解决方法

建立答案here

要获取 WebAssembly.instantiateStreaming / WebAssembly.compileStreaming 的进度,请使用自定义 ReadableStream 创建一个新的 Fetch Response,该自定义 ReadableStream 实现了它自己的控制器。

示例:

*