Funciones asincrónicas a Promesas

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, aprenderemos cómo convertir una función asincrónica para que devuelva una promesa utilizando la función promisify. Esto nos permitirá escribir código más limpio y legible evitando las funciones de devolución de llamada. También exploraremos el uso de la currying y el operador rest en JavaScript.


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/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") javascript/ToolsandEnvironmentGroup -.-> javascript/debugging("Debugging") subgraph Lab Skills javascript/variables -.-> lab-28559{{"Funciones asincrónicas a Promesas"}} javascript/data_types -.-> lab-28559{{"Funciones asincrónicas a Promesas"}} javascript/arith_ops -.-> lab-28559{{"Funciones asincrónicas a Promesas"}} javascript/comp_ops -.-> lab-28559{{"Funciones asincrónicas a Promesas"}} javascript/async_prog -.-> lab-28559{{"Funciones asincrónicas a Promesas"}} javascript/spread_rest -.-> lab-28559{{"Funciones asincrónicas a Promesas"}} javascript/debugging -.-> lab-28559{{"Funciones asincrónicas a Promesas"}} end

Función promisify

Para convertir una función asincrónica para que devuelva una promesa, siga estos pasos:

  1. Abra la Terminal/SSH y escriba node para comenzar a practicar la codificación.
  2. Utilice la currying para devolver una función que devuelva una Promise que llama a la función original.
  3. Utilice el operador rest (...) para pasar todos los parámetros.
  4. Si está utilizando Node 8+ puede utilizar util.promisify.
  5. Aquí hay un fragmento de código de ejemplo:
const promisify =
  (func) =>
  (...args) =>
    new Promise((resolve, reject) =>
      func(...args, (err, result) => (err ? reject(err) : resolve(result)))
    );
  1. Para utilizar esta función, defina la función asincrónica y pásela como parámetro a la función promisify. La función devuelta ahora devolverá una promesa.
const delay = promisify((d, cb) => setTimeout(cb, d));
delay(2000).then(() => console.log("Hi!")); // La promesa se resuelve después de 2s

La función delay es un ejemplo de una función asincrónica que ahora devuelve una promesa utilizando la función promisify.

Resumen

¡Felicitaciones! Has completado el laboratorio de la Función promisify. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.