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

Página 28

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'.

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.

Ahora responde el ejercicio sobre el contenido:

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

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Siguiente página del libro electrónico gratuito:

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

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.