[][src]Function futures::future::join_all

pub fn join_all<I>(i: I) -> JoinAll<<I as IntoIterator>::Item> where
    I: IntoIterator,
    <I as IntoIterator>::Item: Future

Creates a future which represents a collection of the outputs of the futures given.

The returned future will drive execution for all of its underlying futures, collecting the results into a destination Vec<T> in the same order as they were provided.

See Also

This is purposefully a very simple API for basic use-cases. In a lot of cases you will want to use the more powerful FuturesUnordered APIs, some examples of additional functionality that provides:

  • Adding new futures to the set even after it has been started.

  • Only polling the specific futures that have been woken. In cases where you have a lot of futures this will result in much more efficient polling.

Examples

#![feature(async_await, await_macro, futures_api)]
use futures::future::{join_all};

async fn foo(i: u32) -> u32 { i }

let futures = vec![foo(1), foo(2), foo(3)];

assert_eq!(await!(join_all(futures)), [1, 2, 3]);