Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

146
Vistas
Espere a que async forEach que en una función de devolución de llamada termine y luego devuelva los datos

Soy un novato en javascript asíncrono. Quiero usar un método asíncrono para cada uno con Promise Array, pero en javascript await solo es válido para la función asíncrona, pero no podemos marcar una función de devolución de llamada como asíncrona. Sé que cometo un error lógico. ¿Cómo puede lograr eso? ¿Alguna ayuda?

También puedes darme un consejo sobre ese infierno if-else. ¿Cómo puedo evitar ese infierno if-else?

Mi intento con Promise Array:

 router.get("/", async (req, res) => { const token = req.cookies.jwt; let cartObjects = []; cartRequests.getCart( token, (cartError, cartData) => { if (cartError) { return res.status(400).render('error', {message: cartError}) } if(cartData.error) { if (cartData.error==="There is no cart created for this user") { return res.status(200).render("cart/cartPage", { cartObjects }); } else if(cartData.error === "Invalid Token"){ return res.status(200).render('error', {message: 'Not authenticated.'}) } else{ return res.status(400).render('error', {message: cartData.error}) } } const cartItems = cartData.items; let cartItemIndex = 0; let promises = [] cartItems.forEach(async (item) => { let productId = item.productId; promises.push( new Promise((resolve, reject) => { productRequets.getProductById(productId, (productErr, productData) => { if (productData.error) { reject(productData.error); } else { let cartObject = getCartObject( productData, cartItems, cartItemIndex ); resolve(cartObject); } }); })) .catch((err) => { }) .then((resolvedData) => { cartObjects.push(resolvedData); }); }); await Promise.all(promises) return res.status(200).render("cart/cartPage", { cartObjects }); }); });
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda