Programação Assíncrona com Futures e async/await
Aprenda a lidar com operações demoradas em Dart e Flutter usando Futures, async, await e tratamento de erros.
Programação Assíncrona com Futures e async/await é uma aula grátis de Flutter Mobile Development no CoddyKit. Esta é a aula 4 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 Flutter Mobile Development, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Flutter Mobile Development inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
Why Async?
Apps fetch data, read files, and wait on timers. Blocking would freeze the UI, so Dart uses asynchronous programming to stay responsive.
The Future Type
A Future is a value that’ll arrive later. It’s either uncompleted, completed with a value, or completed with an error.
Future<String> fetchName() {
return Future.delayed(
Duration(seconds: 1),
() => "Ada",
);
}async and await
Mark a function async and use await to pause until a Future completes — async code that reads top-to-bottom like normal.
Future<void> main() async {
print("start");
String name = await fetchName();
print("Hello, " + name);
}await Suspends, Not Blocks
Key point: await suspends, it doesn’t block. The event loop keeps handling other work, so the UI stays responsive.
Returning Values
An async function always returns a Future. A plain return inside it just completes that Future with the value.
Future<int> doubleIt(int x) async {
return x * 2; // becomes Future<int>
}Error Handling
Wrap awaited calls in try/catch to handle failures — exactly like catching synchronous exceptions.
try {
var data = await fetchData();
} catch (e) {
print("Failed: " + e.toString());
}Chaining with then
Without async/await, you attach callbacks with then and catchError. Async/await is clearer but compiles to the same idea.
fetchName()
.then((n) => print(n))
.catchError((e) => print("error"));Running in Parallel
Use Future.wait to launch several Futures at once and await them together — faster than awaiting one after another.
var results = await Future.wait([
fetchA(),
fetchB(),
]);FutureBuilder in Flutter
The FutureBuilder widget rebuilds your UI as a Future goes from loading to done — so you show spinners and results declaratively.
FutureBuilder<String>(
future: fetchName(),
builder: (context, snapshot) {
if (!snapshot.hasData) return CircularProgressIndicator();
return Text(snapshot.data!);
},
)Streams: Many Values
A Future yields one value; a Stream yields many over time. Listen with await for or a StreamBuilder.
Stream<int> counter() async* {
for (var i = 0; i < 3; i++) {
yield i;
}
}Putting It Together
Putting it together: Futures for one-off results, async/await for clean code, try/catch for errors, and FutureBuilder to bind async data to widgets.
Quick Check
One quick check on Dart’s Future and async/await before you move on.
Recap
You’ve got Dart async: Future for later values, async/await for readable code, try/catch for errors, and Future.wait plus FutureBuilder.
Perguntas Frequentes
A aula “Programação Assíncrona com Futures e async/await” é grátis?
Sim — o texto completo de “Programação Assíncrona com Futures e async/await” é 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 Flutter Mobile Development, atualize para CoddyKit PRO. O curso de Flutter Mobile Development inclui 4 aulas no total.
O que vou aprender em “Programação Assíncrona com Futures e async/await”?
Aprenda a lidar com operações demoradas em Dart e Flutter usando Futures, async, await e tratamento de erros. Você pratica Flutter Mobile Development 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 Flutter Mobile Development?
Nenhuma experiência prévia é necessária. Flutter Mobile Development 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 4 de 4.
Quanto tempo leva a aula “Programação Assíncrona com Futures e async/await”?
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 Flutter Mobile Development?
Sim. Cada aula de Flutter Mobile Development 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
- Ecossistema e configuração do Flutter
- Fundamentos de Dart para Flutter
- Desenvolvimento do seu primeiro aplicativo Flutter
- Programação Assíncrona com Futures e async/await