0%
Programação assíncrona: Future, async, await — Capítulo 15

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 os Stream.


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 Future e nomear seus três estados;
  • criar um Future com Future.delayed(), Future.value() e Future.error();
  • usar .then(), .catchError() e .whenComplete();
  • escrever uma função async e usar await;
  • entender por que uma função async sempre retorna um Future;
  • capturar um erro assíncrono com try / catch / finally;
  • reconhecer await desnecessariamente sequenciais e paralelizá-los com Future.wait();
  • usar unawaited para um future deliberadamente não aguardado;
  • escrever um main() assíncrono;
  • explicar a diferença entre um Future e um Stream;
  • produzir um Stream com async* e yield;
  • consumir um Stream com await for e com listen();
  • transformar um Stream com map e where;
  • 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

Link copiado!