Rust webassembly wasm-bindgen的 async/await 特性来实现异步编程的示例

本文通过一个实例展示了如何使用Rust的wasm-bindgen和async/await特性进行异步编程,将Rust代码编译为WebAssembly模块并在Node.js环境中运行。文章详细介绍了配置依赖、编写异步函数、编译WebAssembly模块以及在JavaScript中调用这些模块的过程。
摘要由CSDN通过智能技术生成

Rust wasm-bindgen的 async/await 特性来实现异步编程的示例

本文将介绍一个使用 Rust wasm-bindgen的 async/await 特性来实现异步编程的示例,示例中使用了 wasm-bindgen 将 Rust 代码编译成了 WebAssembly 模块,并在 Node.js 中运行。以下是示例的具体步骤:

  1. Cargo.toml 中添加必要的依赖,包括 js-sysspin_sleepwasm-bindgenwasm-bindgen-futuresfutures-corefutures-channel-preview

    [package]
    name = "wasm"
    version = "0.1.0"
    edition = "2021"
    [lib]
    crate-type = ["cdylib", "rlib"]
    [dependencies]
    js-sys = "0.3.61"
    spin_sleep = "1.1.1"
    wasm-bindgen = "0.2.84"
    wasm-bindgen-futures = "0.4"
    futures-core =  { version = '0.3', default-features = false, optional = true }
    futures-channel-preview = "0.3.0-alpha.19"
    
  2. lib.rs 中添加 test()test2() 两个异步函数,其中 test() 函数启动一个新的异步任务并返回其结果,testAsync() 函数是实际执行的异步任务,而 test2() 函数直接返回一个 JsValue

    use wasm_bindgen::prelude::*;
    use spin_sleep::LoopHelper;
    use wasm_bindgen_futures::spawn_local;
    use
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值