#Code Review: How do I write this better?

1 messages · Page 1 of 1 (latest)

simple totem
#

I find it weird that I have to collect once more after collecting the FuturesUnordered. Is there a better way I can write this?

use futures::{stream::FuturesUnordered, StreamExt};
use reqwest::{Client, Error};

async fn get_request(url: &String, client: &Client) -> Result<String, Error> {
    client.get(url).send().await?.text().await
}

pub async fn get_requests(endpoints: &Vec<String>) -> Result<Vec<String>, Error> {
    let client = Client::new();

    endpoints
        .iter()
        .map(|url| get_request(url, &client))
        .collect::<FuturesUnordered<_>>()
        .collect::<Vec<_>>()
        .await
        .into_iter()
        .collect()
}
radiant coral
radiant coral
simple totem
radiant coral
#

maybe I was mistaken

simple totem
#

I think it requires a stream?

radiant coral
simple totem
#

ah ok so like this

    endpoints
        .iter()
        .map(|url| get_request(url, &client))
        .collect::<FuturesUnordered<_>>()
        .try_collect()
        .await
#

yup this is so much better, thanks

radiant coral
#

Nice!

faint plover
radiant coral