如何创建未来的 Vec

zin*_*ino 5 rust rust-async-std

我有这个功能:

async fn get_events(r: RequestBuilder) -> Result<Vec<RepoEvent>, reqwest::Error> {
    Ok(r.send().await?.json::<Vec<RepoEvent>>().await?)
}
Run Code Online (Sandbox Code Playgroud)

我想存储一个Vecfuture 并等待它们全部:

let mut events = vec![];
for i in 1..=x {
    let req: RequestBuilder = client.get(&format!("https://example.com/api?page={}", i));

    events.append(get_events(req));
}
try_join_all(events).await.unwrap();
Run Code Online (Sandbox Code Playgroud)

我得到一个E0308: expected mutable reference, found opaque type.

应该是什么类型events

我可以通过推断类型来解决问题:

let events = (1..=x).map(|i| {
    let req: RequestBuilder = client.get(&format!("https://example.com/api?page={}", i));

    get_events(req);
});
Run Code Online (Sandbox Code Playgroud)

但我真的很想知道如何将 future 存储在向量中。

归档时间:

查看次数:

1638 次

最近记录:

5 年,5 月 前