#web-worker #thread #future #browser #executor #tasks #await

wasm_main_executor

在主浏览器线程上从Web Worker运行futures

1个不稳定版本

0.1.0 2023年4月28日

#1984 in 异步


用于 preach

MIT/Apache

9KB
100

wasm_main_executor

在主浏览器线程上运行futures

Crates.io Docs.rs

某些任务,例如创建AudioContextRtcPeerConnection,只能在主浏览器线程上执行。wasm_main_executor提供了一个简单的方法,可以从任何上下文将futures发送到主浏览器线程。这允许Web Worker启动主线程任务并等待它们完成,并有助于实现跨线程polyfills/shims。

用法

以下是一个简单的执行器使用示例

async fn test_future() -> i32 {
    // Do some async or main-threaded work...
    2
}

// Start the executor. This must be called from the main browser thread.
wasm_main_executor::initialize().unwrap();

// Futures may be spawned on background threads using the executor.
// The future runs on the main thread.
let fut = wasm_main_executor::spawn(test_future());

// A future is returned which may be awaited on the background thread.
assert_eq!(2, futures::executor::block_on(fut));

依赖关系

~10MB
~191K SLoC