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) }
