macro_rules! await { ($e:expr) => { ... }; }
Expand description
Await a sub-future inside an #[async]
function.
You should pass an object implementing [Future
] or [StableFuture
] to
this macro, it will implicitly yield
while that future returns
[Async::Pending
] and evaluate to a Result
containing the result of
that future once complete.
§Examples
ⓘ
#![feature(proc_macro, generators, pin)]
extern crate futures;
use futures::prelude::*;
use futures::future;
use futures::stable::block_on_stable;
#[async]
fn probably_one() -> Result<u32, u32> {
let one = await!(future::ok::<u32, u32>(1))?;
Ok(one)
}
assert_eq!(Ok(1), block_on_stable(probably_one()));