ExpertiDict

Rust · Intermediário · Inglês · Técnico

Future

/ˈfjuːtʃɚ/substantivo

Trait de um valor que representa um cálculo assíncrono ainda não terminado. Possui o método poll, que devolve Pending ou Ready(valor), e é preguiçoso: só avança quando consultado.

Onde usar

Toda função async devolve um tipo que implementa Future. O executor chama poll, e o Waker avisa quando vale a pena chamar de novo.

Em código

use std::future::{ready, Future};
fn dobra<F: Future<Output = u32>>(f: F)
  -> impl Future<Output = u32> {
  async move { f.await * 2 }
}
let fut = dobra(ready(21));
drop(fut); // Future não roda sozinha

Exemplos

An async fn returns a Future.

Uma async fn devolve uma Future.

Futures are lazy until polled.

Futures são preguiçosas até sofrerem poll.

Cuidado

Diferente da Promise do JavaScript, uma Future do Rust não começa sozinha; sem .await ou spawn, nada acontece.

Sinônimos

promessa assíncrona

Origem

Do inglês future, 'futuro': um valor que existirá depois.

Veja também

Todos os termos de Rust