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

76
Vistas
Devolviendo datos de un forEach dentro de una promesa

Tengo problemas para devolver un objeto creado. El código se encuentra a continuación:

Dentro de Promise.allSettled, eventualmente obtengo los resultados que recorro y empujo cada matriz a un objeto (esto crea el objeto bien), cuando intento y devuelvo dicho objeto, está vacío.

Creo que es porque mi promesa no se ha cumplido, he intentado hacer:

Promise.resolve(returnedData) luego devolviéndolo, e incluso .then(resultados => resultados).

¿Qué me estoy perdiendo? Creo que he mirado esto durante tanto tiempo que hay algo claro como el día que me falta.

 const getProductData = () => { debugger; const productIds = []; const returnedData = []; const customerLocation = getCustomerLocation(); productdataItems.forEach((product) => { productIds.push( product .querySelector('[data-test-id="product-card-code"]') .innerHTML.replace(/[^0-9]/g, ''), ); }); const items = productIds.map((product) => ({ productCode: product, quantity: 1, })); // Load in products for other steps const promises = []; productIds.forEach((sku) => { promises.push(getProduct(sku)); }); Promise.allSettled(promises).then((results) => { // Stock requires location data. if (customerLocation) { getEligibility(items, customerLocation).then((eligibility) => { getStock([customerLocation.collectionBranchId], productIds).then( (stock) => { results.forEach((result, i) => { if (result.value.product) { returnedData.push({ Product: result.value.product, Eligibility: eligibility[i], Stock: stock[i].quantity, ProductMarkup: productdataItems, PostCode: customerLocation.deliveryPostcode, }); } }); }, ); }); } }); return returnedData; };
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

returnData está fuera de promise.allSettled. Por lo tanto, se devuelve antes de que se complete Promise.allSettled y, por lo tanto, está vacío.

Lo que debería estar haciendo es mover el retorno de returnData dentro de Promises

 return Promise.allSettled(promises).then((results) => { ... ... return returnData; }

getProductData debe ser un método asíncrono que devuelva un resultado prometido.

about 4 years ago · Juan Pablo Isaza Denunciar
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