我想在编译为 wasm 时在 Rust 中使用 block_on 。 问题是我正在使用 egui 并想将其编译为网络。它的功能是同步的,我需要阻止异步功能。我尝试使用 async_futures,但它似乎开始了未来,但没有阻止它。
#[wasm_bindgen]
pub fn test1() {
alert("Hello, 1");
async_std::task::block_on(async {
alert("Hello, 2");
async_std::task::sleep(Duration::from_secs(5)).await;
alert("Hello, 3");
});
alert("Hello, 4");
}
输出将按顺序
1, 4, 2, 3
。
它不会发出任何绑定,我可以用它来检查它是否完成,并且我无法传入互斥体,因为我需要在异步代码之外等待它,这是不可能的。知道如何阻止它吗?
我期待输出
1, 2, 3, 4