■ tokio 크레이트를 사용해 반환값을 갖는 비동기 처리를 하는 방법을 보여준다.
▶ Cargo.toml
1 2 3 4 5 6 7 8 9 |
[package] name = "test_project" version = "0.1.0" edition = "2021" [dependencies] tokio = { version = "1", features = ["full"] } |
▶ src/main.rs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
use tokio::time; #[tokio::main] async fn main() { for i in 1..=3 { println!("#{} START TO GET MESSAGE", i); let message : String = get_message_async(i).await; println!("{}", message); } } async fn get_message_async(value : i32) -> String { time::sleep(time::Duration::from_secs(1)).await; return String::from(format!("MESSAGE {}", value)); } |