React JS | Clase 05 – Promesas y Método .map() 👨🏽‍💻

Posted by


En esta clase vamos a aprender sobre promesas y el método .map() en React JS. Las promesas son objetos que representan la eventual terminación o falla de una operación asincrónica, y son una parte fundamental del manejo de operaciones asíncronas en JavaScript.

El método .map() en JavaScript se utiliza para iterar sobre cada elemento de un array y devolver un nuevo array con los valores que resultan de aplicar una función a cada elemento del array. Es una forma eficiente y concisa de transformar y manipular arrays en JavaScript.

Vamos a comenzar por entender el concepto de promesas en JavaScript. Una promesa puede estar en uno de tres estados: pendiente, cumplida o rechazada. Cuando una promesa se resuelve exitosamente, se llama "resuelta" y si ocurre un error durante la resolución de la promesa, esta se llama "rechazada".

Para crear una promesa en JavaScript, utilizamos la clase Promise. Por ejemplo:

const miPromesa = new Promise((resolve, reject) => {
  // Realizamos alguna operación asincrónica, como una llamada a una API
  const exito = true;

  if(exito) {
    resolve("Operación exitosa");
  } else {
    reject("Ocurrió un error");
  }
});

miPromesa.then((respuesta) => {
  console.log(respuesta);
}).catch((error) => {
  console.error(error);
});

En el ejemplo anterior, creamos una promesa que resuelve si la operación es exitosa, y rechaza si ocurre un error. Luego manejamos la promesa con los métodos .then() y .catch() para manejar la respuesta exitosa y los errores respectivamente.

Ahora, vamos a ver cómo podemos utilizar promesas y el método .map() en React JS. Supongamos que tenemos un array de números y queremos realizar una operación asincrónica sobre cada uno de ellos. Podemos hacer lo siguiente:

const numeros = [1, 2, 3, 4, 5];
const operacionAsincronica = (numero) => {
  return new Promise((resolve, reject) => {
    // Operación asincrónica
    setTimeout(() => {
      resolve(numero * 2);
    }, 1000);
  });
};

const promesas = numeros.map((numero) => {
  return operacionAsincronica(numero);
});

Promise.all(promesas)
  .then((resultados) => {
    console.log(resultados); // [2, 4, 6, 8, 10]
  })
  .catch((error) => {
    console.error(error);
});

En este ejemplo, creamos un array de números y una función que realiza una operación asincrónica sobre cada número. Utilizamos el método .map() para crear un array de promesas, donde cada promesa representa el resultado de la operación asincrónica sobre cada número. Luego usamos Promise.all() para esperar a que todas las promesas se resuelvan o alguna sea rechazada.

Finalmente, manejamos las respuestas exitosas o los errores con los métodos .then() y .catch() respectivamente.

Espero que esta explicación te haya ayudado a comprender cómo trabajar con promesas y el método .map() en React JS. ¡Sigue practicando y experimentando con estos conceptos para mejorar tus habilidades en el desarrollo de aplicaciones con React JS! 👨🏽‍💻

0 0 votes
Article Rating
22 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@dantebazan6654
1 month ago

GRANDE CARPIIIIIIIIII!

@leonardosilva-zb8vz
1 month ago

Hola carpí, disculpe que te haga esta pregunta, es que estoy en la cursada de react y me gustaría aprender lo que más pueda, en el minuto 17:00, hiciste un cambio, ¿porque cambiaste de una exportación nombrada a una exportación por defecto? quede con esa duda, muchas gracias.

@rodrigovillagra10
1 month ago

Gracias carpi sos un genio

@fernandoemanuelgonzalez2512
1 month ago

siento que aprendo a toda velocidad con tus videos, explicas muy bien genio !

@AestheticJules
1 month ago

Le entendí mucho más a ti Carpi y actualmente estoy en el curso de ReactJS en CodeHouse, muchas gracias por crear este contenido, éxito 🫶🏻🎉🎉💪🏻💪🏻

@heribertodiaz-ez9sr
1 month ago

Excelente te felicito

@ge7579
1 month ago

Gracias por el video.
En mi opinión segmentar tanto el código hace que se pierda una visión total del flujo de datos. Está tan segmentado y con nombres de variables tan idénticas que uno se pierde porque nada se diferencia.

@micaelachayo
1 month ago

genioo carpiii😊😊. tus videos son los mejores. aprendo mucho de ellos!

@franciscochiri5240
1 month ago

te quiero carpi

@alejandrogeorgoglu264
1 month ago

Gracias Carpi por el video, muy bueno!

@eurubio
1 month ago

Hola Carpi. Gracias por compartir la info. Muy buena!! Tengo una consulta… No me muestra el primer título en el DOM. ni ninguno. Tiene que ver el json??

@fiorellamaver8107
1 month ago

te amo

@cristianwalz8947
1 month ago

Hola Carpi, gracias como siempre por los videos son de mucho ayuda! Consulta, tenes los repositorios subidos de estos temas en GitHub?

@fabiansuarez7934
1 month ago

Excelente curso!!!

@lucasjerez9347
1 month ago

Sos un genio chabon, la verdad que sos con el que mas aprendo porque vas al grano directo jajaj, me encanta, a seguir asi. Estoy en un bootcamp de desarrollo Front end y la verdad que este curso que hiciste, me esta sirviendo un monton, gracias por todo!

@pablocantarin7649
1 month ago

Craaackk!!!!

@leomax522
1 month ago

Bárbaro Carpi. Excelente explicación y muy bien aplicado el ejemplo. Gracias.

@dagcomunica5921
1 month ago

Hola Carpi. Gracias por el video

@mohamedelcamellero3267
1 month ago

allí esta mi comentario: muchas gracias por todo Carpi…

@beatrizsc4600
1 month ago

Gracias por el video, se me aclara todo 😅