Conceitos básicos de Dart: Programação assíncrona

Capítulo 28

Tempo estimado de leitura: 3 minutos

+ Exercício
Audio Icon

Ouça em áudio

0:00 / 0:00

A programação assíncrona é um conceito fundamental no Dart, especialmente quando se trata de criar aplicativos com Flutter. Antes de mergulhar em detalhes, vamos entender o que é a programação assíncrona e por que é tão importante.

Normalmente, os programas são executados de forma síncrona, o que significa que cada instrução é executada uma após a outra. No entanto, alguns processos podem levar mais tempo para serem concluídos, como solicitações de rede, leitura de arquivos, etc. Durante esse tempo, o programa é forçado a esperar, o que pode levar a uma experiência de usuário ruim, especialmente em aplicativos móveis onde a fluidez e a responsividade são cruciais.

A programação assíncrona resolve esse problema permitindo que o programa continue executando outras tarefas enquanto espera que a operação demorada seja concluída. Isso é feito por meio de 'Future' e 'async / await', dois conceitos-chave na programação assíncrona do Dart.

Future

No Dart, um 'Future' representa um valor potencial ou um erro que estará disponível em algum momento no futuro. É semelhante à 'Promise' em JavaScript. Quando você inicia uma operação assíncrona, ela retorna um 'Future'. Esse 'Future' será 'concluído' quando a operação for concluída ou 'rejeitado' se ocorrer um erro.

Para lidar com o resultado de um 'Future', você pode usar o método 'then()' para especificar o que deve ser feito quando o 'Future' for concluído com sucesso, e o método 'catchError()' para lidar com qualquer erro. Além disso, você pode encadear várias chamadas 'then()' e 'catchError()', pois cada uma delas retorna um novo 'Future'.

Continue em nosso aplicativo e ...
  • Ouça o áudio com a tela desligada
  • Ganhe Certificado após a conclusão
  • + de 5000 cursos para você explorar!
ou continue lendo abaixo...
Download App

Baixar o aplicativo

Async / Await

Embora 'Future' e seus métodos 'then()' e 'catchError()' sejam poderosos, eles podem levar a um código bastante aninhado e difícil de ler. É aqui que 'async' e 'await' entram em cena.

A palavra-chave 'async' é usada para declarar uma função assíncrona. Dentro de uma função 'async', você pode usar a palavra-chave 'await' antes de uma expressão para pausar a execução da função até que a expressão seja concluída. A expressão geralmente é uma chamada para uma função que retorna um 'Future'.

O uso de 'async' e 'await' resulta em um código mais limpo e fácil de entender, pois permite que você escreva código assíncrono como se fosse síncrono.

Exemplo

Suponha que você tenha uma função 'fetchData()' que retorna um 'Future'. Aqui está como você pode usar 'Future', 'async' e 'await' para lidar com isso:

Future<String> fetchData() {
  // Simula uma operação de rede que leva 2 segundos
  return Future.delayed(Duration(seconds: 2), () => 'Hello, World!');
}

void main() async {
  print('Fetching data...');
  String data = await fetchData();
  print('Data: $data');
}

Quando você executa este código, ele imprime 'Fetching data...', aguarda 2 segundos e então imprime 'Data: Hello, World!'. Durante esses 2 segundos, o programa não fica bloqueado, permitindo que outras tarefas sejam executadas.

Em resumo, a programação assíncrona é um conceito crucial no Dart que permite escrever aplicativos responsivos e fluidos. Ao usar 'Future' e 'async / await', você pode executar operações demoradas, como solicitações de rede, sem bloquear o programa, proporcionando uma melhor experiência ao usuário.

Agora responda o exercício sobre o conteúdo:

O que a programação assíncrona permite em Dart e por que é importante?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

A programação assíncrona permite que o programa continue executando outras tarefas enquanto aguarda a conclusão de operações demoradas, como solicitações de rede. Isso é crucial para a fluidez e responsividade, especialmente em aplicativos móveis, onde a experiência do usuário não deve ser comprometida por bloqueios.

Próximo capitúlo

Conceitos básicos de Dart: Conceitos básicos de Flutter

Arrow Right Icon
Capa do Ebook gratuito Como criar aplicativos do zero ao avançado, utilizando Flutter e Dart curso completo
10%

Como criar aplicativos do zero ao avançado, utilizando Flutter e Dart curso completo

3.75

(4)

267 páginas

Baixe o app para ganhar Certificação grátis e ouvir os cursos em background, mesmo com a tela desligada.