1个不稳定版本
0.1.0 | 2023年4月28日 |
---|
#1984 in 异步
用于 preach
9KB
100 行
wasm_main_executor
在主浏览器线程上运行futures
某些任务,例如创建AudioContext
或RtcPeerConnection
,只能在主浏览器线程上执行。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