首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

1. 在 Cargo.toml 中添加必要的依赖,包括 js-sys、spin_sleep、wasm-bindgen、wasm-bindgen-futures、futures-core 和 futures-channel-preview:

2. 在 lib.rs 中添加 test() 和 test2() 两个异步函数,其中 test() 函数启动一个新的异步任务并返回其结果,testAsync() 函数是实际执行的异步任务,而 test2() 函数直接返回一个 JsValue:

3. 运行 wasm-pack build --target nodejs --dev 命令编译 WebAssembly 模块。

4. 在 main.js 中引入编译好的模块,并分别调用 test() 和 test2() 函数:

5. 运行 node main.js 命令执行 JavaScript 代码。

6. 运行结果会先输出 res 2 2,然后等待一段时间后输出 res 1 1。这是因为 test() 函数中启动了一个新的异步任务 testAsync(),该任务会先执行,输出从 0

完整demo代码 github: https://github.com/mengyou658/rust-wasm-async gitess: https://gitee.com/mengyou/rust-wasm-async

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230414A02PS900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券