ExpertiDict

Rust · Essencial · Inglês · Técnico

await

/əˈweɪt/palavra-chave

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 rodar

Exemplos

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'.

Veja também

Todos os termos de Rust