[−][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.
It is also gated behind the async-await
feature of this library, which is
not activated by default.
Examples
When used on multiple futures that return Ok
, try_join!
will return
Ok
of a tuple of the values:
#![feature(async_await)] 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(async_await)] 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));