[][src]Module async_std::future

Asynchronous values.

Base Futures Concurrency

Often it's desireable to await multiple futures as if it was a single future. The join family of operations converts multiple futures into a single future that returns all of their outputs. The select family of operations converts multiple future into a single future that returns the first output.

For operating on futures the following macros can be used:

NameReturn signatureWhen does it return?
future::join(T1, T2)Wait for all to complete
future::selectTReturn on first value

Fallible Futures Concurrency

For operating on futures that return Result additional try_ variants of the macros mentioned before can be used. These macros are aware of Result, and will behave slightly differently from their base variants.

In the case of try_join, if any of the futures returns Err all futures are dropped and an error is returned. This is referred to as "short-circuiting".

In the case of try_select, instead of returning the first future that completes it returns the first future that successfully completes. This means try_select will keep going until any one of the futures returns Ok, or all futures have returned Err.

However sometimes it can be useful to use the base variants of the macros even on futures that return Result. Here is an overview of operations that work on Result, and their respective semantics:

NameReturn signatureWhen does it return?
future::join(Result<T, E>, Result<T, E>)Wait for all to complete
future::try_joinResult<(T1, T2), E>Return on first Err, wait for all to complete
future::selectResult<T, E>Return on first value
future::try_selectResult<T, E>Return on first Ok, reject on last Err

Macros

joinunstable

Awaits multiple futures simultaneously, returning all results once complete.

selectunstable

Waits for either one of several similarly-typed futures to complete.

try_joinunstable

Awaits multiple fallible futures simultaneously, returning all results once complete.

try_selectunstable

Waits for either one of several similarly-typed futures to complete.

Structs

TimeoutErrorunstable

An error returned when a future times out.

Traits

Future

A future represents an asynchronous computation.

Functions

pending

Never resolves to a value.

poll_fn

Creates a new future wrapping around a function returning Poll.

ready

Resolves to the provided value.

timeoutunstable

Awaits a future or times out after a duration of time.