Capítulo 15 — Programação assíncrona: Future, async, await
Parte 1A — Aprender Dart · Capítulo 15 de 62 · 6 h
Capítulo 15 — Programação assíncrona: Future, async, await
Nível: intermediário Duração estimada: 6 h Pré-requisitos: capítulo 13 — Exceções e tratamento de erros, capítulo 14 — Programação funcional em coleções O que você saberá fazer ao final: escrever um programa que espera um resultado demorado (carregamento, rede, arquivo) sem nunca bloquear o restante do aplicativo, dominando
Future,async,await,Future.wait()e osStream.
15.0 — Objetivos do capítulo
Ao final deste capítulo, você será capaz de:
- explicar por que uma operação demorada nunca deve bloquear o programa;
- distinguir um processamento síncrono de um processamento assíncrono;
- explicar o que é o event loop do Dart e por que o Dart é single-thread;
- prever a ordem real de exibição de um programa assíncrono;
- definir um
Futuree nomear seus três estados; - criar um
FuturecomFuture.delayed(),Future.value()eFuture.error(); - usar
.then(),.catchError()e.whenComplete(); - escrever uma função
asynce usarawait; - entender por que uma função
asyncsempre retorna umFuture; - capturar um erro assíncrono com
try/catch/finally; - reconhecer
awaitdesnecessariamente sequenciais e paralelizá-los comFuture.wait(); - usar
unawaitedpara um future deliberadamente não aguardado; - escrever um
main()assíncrono; - explicar a diferença entre um
Futuree umStream; - produzir um
Streamcomasync*eyield; - consumir um
Streamcomawait fore comlisten(); - transformar um
Streamcommapewhere; - explicar por que o Flutter se baseia inteiramente no assíncrono.
Comentários
Os comentários são alimentados pelo GitHub Discussions
Conecte-se com o GitHub para participar da discussão