Rust · Essencial · Inglês · Técnico
await
Operador pós-fixado que espera uma Future terminar e devolve o resultado, cedendo o controle ao executor enquanto isso. Só pode ser usado dentro de async.
Onde usar
Escreve-se como fut.await, depois da expressão. Cada .await é um ponto onde a tarefa pode ser suspensa e retomada, até em outra thread.
Em código
async fn dobra(n: u32) -> u32 { n * 2 }
async fn total() -> u32 {
let a = dobra(1).await;
let b = dobra(2).await;
a + b
}
// precisa de um executor para rodarExemplos
You forgot the await, so nothing ran.
Você esqueceu o await, então nada rodou.
Each await is a possible suspension point.
Cada await é um possível ponto de suspensão.
Cuidado
Await não bloqueia a thread: ele suspende só a tarefa. Quem trava o executor é código bloqueante chamado dentro do async.
Sinônimos
aguardar
Origem
Do inglês await, 'aguardar'.