[−][src]Macro futures::try_join
Polls multiple futures simultaneously, resolving to a Result
containing
either a tuple of the successful outputs or an error.
try_join!
is similar to [join!
], but completes immediately if any of
the futures return an error.
This macro is only usable inside of async functions, closures, and blocks.
Examples
When used on multiple futures that return Ok
, try_join!
will return
Ok
of a tuple of the values:
#![feature(pin, async_await, await_macro, futures_api)] use futures::{try_join, future}; let a = future::ready(Ok::<i32, i32>(1)); let b = future::ready(Ok::<u64, i32>(2)); assert_eq!(try_join!(a, b), Ok((1, 2)));
If one of the futures resolves to an error, try_join!
will return
that error:
#![feature(pin, async_await, await_macro, futures_api)] use futures::{try_join, future}; let a = future::ready(Ok::<i32, i32>(1)); let b = future::ready(Err::<u64, i32>(2)); assert_eq!(try_join!(a, b), Err(2));