Encadeando Funções Assíncronas

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Neste laboratório, exploraremos o conceito de composição de funções em programação assíncrona usando JavaScript. Aprenderemos como usar a função pipeAsyncFunctions para compor uma série de funções assíncronas que podem aceitar um único argumento e retornar uma combinação de valores normais, Promises, ou ser async. Ao final deste laboratório, você terá uma sólida compreensão de como usar a composição de funções para escrever código assíncrono mais eficiente e legível.

Como Encadeiar Funções Assíncronas em JavaScript

Para começar a praticar a codificação com JavaScript, abra o Terminal/SSH e digite node. Depois de se familiarizar com o básico, você pode começar a trabalhar com funções assíncronas.

A função pipeAsyncFunctions permite que você execute a composição de funções da esquerda para a direita com funções assíncronas. Veja como funciona:

  • A função recebe qualquer número de funções assíncronas como argumentos.
  • O operador spread (...) é usado para passar essas funções como argumentos separados para a função pipeAsyncFunctions.
  • A função resultante pode aceitar qualquer número de argumentos, mas cada uma das funções que estão sendo compostas deve aceitar um único argumento.
  • As funções podem retornar uma combinação de valores normais, Promises, ou ser async e retornar através de await.
  • O método reduce() é usado junto com Promise.prototype.then() para realizar a composição de funções.
  • O método reduce() itera sobre as funções, executando cada uma em sequência e passando o resultado de uma função para a próxima.
  • A Promise resultante é retornada.

Aqui está um exemplo de como usar pipeAsyncFunctions para somar um número:

const sum = pipeAsyncFunctions(
  (x) => x + 1,
  (x) => new Promise((resolve) => setTimeout(() => resolve(x + 2), 1000)),
  (x) => x + 3,
  async (x) => (await x) + 4
);
(async () => {
  console.log(await sum(5)); // 15 (after one second)
})();

Neste exemplo, sum é composto por quatro funções que adicionam valores diferentes ao número de entrada. O valor final de sum é o resultado da execução de cada função em sequência, com um atraso de um segundo para a segunda função. A palavra-chave async é usada com a última função para permitir o uso de await.

Ao usar pipeAsyncFunctions, você pode facilmente compor qualquer número de funções assíncronas para criar funcionalidades mais complexas.

Resumo

Parabéns! Você concluiu o laboratório de Pipe Async Functions. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.