pub fn or<T, F1, F2>(future1: F1, future2: F2) -> Or<F1, F2>ⓘNotable traits for Or<F1, F2>impl<T, F1, F2> Future for Or<F1, F2> where
F1: Future<Output = T>,
F2: Future<Output = T>, type Output = T;
where
F1: Future<Output = T>,
F2: Future<Output = T>,
Expand description
Returns the result of the future that completes first, preferring future1
if both are ready.
If you need to treat the two futures fairly without a preference for either, use the race()
function or the FutureExt::race()
method.
Examples
use futures_lite::future::{self, pending, ready};
assert_eq!(future::or(ready(1), pending()).await, 1);
assert_eq!(future::or(pending(), ready(2)).await, 2);
// The first future wins.
assert_eq!(future::or(ready(1), ready(2)).await, 1);