Futures低调发布0.3.1正式版,全面支持async/await
- 2019 年 11 月 14 日
- 筆記
无需Tokio/Async-std,自带Runtime。代码库的参考文档比较完善,只是缺少应用指南。下面是一段测试代码:
use futures::executor::block_on; use futures::future::{join_all, pending, select_all}; use futures::prelude::*; async fn a(a: i32, b: i32) -> i32 { a + b } async fn b(a: i32, b: i32) -> i32 { a - b } async fn c(a: i32, b: i32) -> i32 { pending().await } fn main() { let r = block_on(async { println!("{}", a(1, 2).await); println!("{}", b(1, 2).await); async fn foo(i: u32) -> u32 { i * 10 } let futures = vec![foo(1), foo(2), foo(3)]; let all_finished = join_all(futures).await; println!("{:?}", all_finished); // let first_finished = select_all(futures).await; // println!("{:?}", first_finished); "block_on result" }); println!("{}", r) }