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;
3
2
use reqwest;
4
- use std:: collections:: HashMap ;
5
3
6
- async fn size_of_page ( url : & str ) -> Result < usize > {
4
+ async fn size_of_page ( url : & str ) -> reqwest :: Result < usize > {
7
5
let resp = reqwest:: get ( url) . await ?;
8
6
Ok ( resp. text ( ) . await ?. len ( ) )
9
7
}
10
8
11
9
#[ tokio:: main]
12
10
async 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
+ }
24
17
}
You can’t perform that action at this time.
0 commit comments