Criar e aguardar Futures
Produza e consuma valores Future.
Criar e aguardar Futures é uma aula grátis de Dart Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Dart Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Dart Academy inclui 4 aulas no total.
Uma promessa de valor
Um Future representa um valor que ainda não está pronto, mas chegará mais tarde, como um recibo que você resgata quando seu pedido fica pronto.
Future de um tipo
Um Future sempre é tipado de acordo com o que entregará. Um Future<int> promete um int quando o trabalho assíncrono for concluído.
Future<int> fetchScore() async {
return 42;
}Marcando uma função como async
Adicione a palavra-chave async, e a função retornará automaticamente um Future. O valor retornado se tornará o valor de conclusão do Future.
Future<String> greet() async {
return "hi";
}Aguardando um resultado
Dentro de uma função async, await pausa até que o Future seja concluído e então fornece o valor simples, sem o encapsulamento.
final score = await fetchScore();
print(score); // 42await não bloqueia
Enquanto uma função aguarda, o loop de eventos continua executando outro trabalho. await suspende apenas essa função, não o programa inteiro.
Simulando um atraso
Use Future.delayed para aguardar um período definido antes de produzir um valor; isso é perfeito para imitar uma chamada de rede lenta.
await Future.delayed(Duration(seconds: 1));
print("one second later");Um Future instantâneo
Future.value encapsula um valor pronto em um Future, sendo útil quando uma API espera um Future, mas você já tem a resposta.
Future<int> ready = Future.value(7);Encadeando com then
Antes de async/await, você usava then para executar uma função de retorno de chamada assim que o Future fosse resolvido. Ele ainda é útil em cadeias curtas.
fetchScore().then((s) => print(s));await deixa a leitura mais limpa
Em comparação com funções de retorno de chamada then aninhadas, await permite que o código assíncrono seja lido de cima para baixo, como etapas síncronas comuns.
Retornando de async
O que quer que você retorne de uma função async se tornará o valor do Future. Não retorne nada e você obterá um Future<void>.
await somente em async
Você só pode usar await dentro de uma função marcada como async. Fora dela, trabalhe com o Future usando then.
Verificação rápida
Verificação rápida sobre o comportamento de await.
Recapitulação: Futures
Agora você cria Futures com async, entrega valores retornando-os e os desembrulha com await. O código assíncrono é lido com a mesma clareza do síncrono. 🚀
Perguntas Frequentes
A aula “Criar e aguardar Futures” é grátis?
Sim — o texto completo de “Criar e aguardar Futures” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Dart Academy, atualize para CoddyKit PRO. O curso de Dart Academy inclui 4 aulas no total.
O que vou aprender em “Criar e aguardar Futures”?
Produza e consuma valores Future. Você pratica Dart Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Dart Academy?
Nenhuma experiência prévia é necessária. Dart Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Criar e aguardar Futures”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Dart Academy?
Sim. Cada aula de Dart Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- O loop de eventos e as microtarefas
- Criar e aguardar Futures
- Tratamento de erros em código assíncrono
- Future.wait e trabalho paralelo