Funciones Asíncronas Encadenadas

JavaScriptJavaScriptBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, exploraremos el concepto de composición de funciones en la programación asíncrona utilizando JavaScript. Aprenderemos cómo utilizar la función pipeAsyncFunctions para componer una serie de funciones asíncronas que pueden aceptar un solo argumento y devolver una combinación de valores normales, Promises o ser async. Al final de este laboratorio, tendrás una comprensión sólida de cómo utilizar la composición de funciones para escribir código asíncrono más eficiente y legible.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript(("JavaScript")) -.-> javascript/ToolsandEnvironmentGroup(["Tools and Environment"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/AdvancedConceptsGroup -.-> javascript/async_prog("Asynchronous Programming") javascript/ToolsandEnvironmentGroup -.-> javascript/debugging("Debugging") subgraph Lab Skills javascript/variables -.-> lab-28545{{"Funciones Asíncronas Encadenadas"}} javascript/data_types -.-> lab-28545{{"Funciones Asíncronas Encadenadas"}} javascript/arith_ops -.-> lab-28545{{"Funciones Asíncronas Encadenadas"}} javascript/comp_ops -.-> lab-28545{{"Funciones Asíncronas Encadenadas"}} javascript/async_prog -.-> lab-28545{{"Funciones Asíncronas Encadenadas"}} javascript/debugging -.-> lab-28545{{"Funciones Asíncronas Encadenadas"}} end

Cómo encadenar funciones asíncronas en JavaScript

Para comenzar a practicar la programación con JavaScript, abre la Terminal/SSH y escribe node. Una vez que estés familiarizado con los conceptos básicos, puedes comenzar a trabajar con funciones asíncronas.

La función pipeAsyncFunctions te permite realizar la composición de funciones de izquierda a derecha con funciones asíncronas. Aquí es cómo funciona:

  • La función acepta cualquier cantidad de funciones asíncronas como argumentos.
  • El operador de propagación (...) se utiliza para pasar estas funciones como argumentos separados a la función pipeAsyncFunctions.
  • La función resultante puede aceptar cualquier cantidad de argumentos, pero cada una de las funciones que se componen debe aceptar un solo argumento.
  • Las funciones pueden devolver una combinación de valores normales, Promises o ser async y devolver a través de await.
  • El método reduce() se utiliza junto con Promise.prototype.then() para realizar la composición de funciones.
  • El método reduce() itera sobre las funciones, ejecutándolas secuencialmente y pasando el resultado de una función a la siguiente.
  • Se devuelve la Promise resultante.

Aquí hay un ejemplo de cómo utilizar pipeAsyncFunctions para sumar un 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 (después de un segundo)
})();

En este ejemplo, sum está compuesto por cuatro funciones que suman diferentes valores al número de entrada. El valor final de sum es el resultado de ejecutar cada función secuencialmente, con una demora de un segundo para la segunda función. La palabra clave async se utiliza con la última función para permitir el uso de await.

Al utilizar pipeAsyncFunctions, puedes fácilmente componer cualquier cantidad de funciones asíncronas para crear una funcionalidad más compleja.

Resumen

¡Felicitaciones! Has completado el laboratorio de Funciones Asíncronas Encadenadas. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.