File tree Expand file tree Collapse file tree 1 file changed +8
-15
lines changed
src/concurrency/async-control-flow Expand file tree Collapse file tree 1 file changed +8
-15
lines changed Original file line number Diff line number Diff line change 1- use anyhow:: Result ;
2- use futures:: future;
1+ use futures:: future:: join_all;
32use reqwest;
4- use std:: collections:: HashMap ;
53
6- async fn size_of_page ( url : & str ) -> Result < usize > {
4+ async fn size_of_page ( url : & str ) -> reqwest :: Result < usize > {
75 let resp = reqwest:: get ( url) . await ?;
86 Ok ( resp. text ( ) . await ?. len ( ) )
97}
108
119#[ tokio:: main]
1210async fn main ( ) {
13- let urls: [ & str ; 4 ] = [
14- "https://google.com" ,
15- "https://httpbin.org/ip" ,
16- "https://play.rust-lang.org/" ,
17- "BAD_URL" ,
18- ] ;
19- let futures_iter = urls. into_iter ( ) . map ( size_of_page) ;
20- let results = future:: join_all ( futures_iter) . await ;
21- let page_sizes_dict: HashMap < & str , Result < usize > > =
22- urls. into_iter ( ) . zip ( results. into_iter ( ) ) . collect ( ) ;
23- println ! ( "{:?}" , page_sizes_dict) ;
11+ let urls = [ "https://rust-lang.org" , "https://httpbin.org/ip" , "BAD_URL" ] ;
12+ let futures = urls. into_iter ( ) . map ( size_of_page) ;
13+ let results = join_all ( futures) . await ;
14+ for ( url, result) in urls. into_iter ( ) . zip ( results) {
15+ println ! ( "{url}: {result:?}" ) ;
16+ }
2417}
You can’t perform that action at this time.
0 commit comments