// *** before: ***
// цепочка из комбинаторов: порядок шагов приходилось читать наизнанку
fn load(id: u32) -> impl Future<Item = String, Error = Error> {
fetch_user(id)
.and_then(|user| fetch_profile(user.profile_id))
.map(|profile| profile.name)
}
// *** in version 1.39: ***
// тот же порядок шагов, но записан обычным последовательным кодом
async fn load(id: u32) -> Result<String, Error> {
let user = fetch_user(id).await?;
let profile = fetch_profile(user.profile_id).await?;
Ok(profile.name)
}