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

260
Vistas
Asigne una matriz de objetos y cambie una propiedad con una función que llame a una API. Sigo recibiendo promesa pendiente

Tengo que recorrer una serie de objetos y modificar una sola propiedad en cada objeto. Modifico esta propiedad con una función que se conecta a la API de Twitter. Mi problema es que debo estar usando async y esperar incorrectamente porque tengo una promesa pendiente.

Este es mi código:

 getProfile:(req,res)=>{ try { const userId=req.params.id const profile=db.query('SELECT * FROM profiles WHERE user_id=?', [userId],async (err,result)=>{ if(err) return res.status(404).send(err) const profiles= await result.map( obj=>{ const container={} container['name']=obj.profile_name container['desc']=obj.profile_desc container['twitter']= connectTwitt.getTwitt(obj.twitt)//calls to api return container }) console.log(profiles)// promise pending res.send(profiles)

Esta es la estructura de la matriz de objetos que estoy mapeando:

 [ {profile_name:`Elon Musk`, profile_desc:'enterpreneur',twitt:636465} ]
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Sí, está utilizando la sintaxis async / await de forma un poco incorrecta.

En este momento, está llamando await en el método Array.map() . Sin embargo, ese método no está basado en promesas.

En su lugar, debe agregar la palabra clave await al método getTwitt() y await a que se completen todas las promesas.

Con esos cambios, debería verse como a continuación.

 const profiles = await Promise.all(result.map(async (obj) => { // This line has been modified const container = {}; container["name"] = obj.profile_name; container["desc"] = obj.profile_desc; container["twitter"] = await connectTwitt.getTwitt(obj.twitt); // This line has been modified. return container; }));

¡Esperemos que esto ayude con su problema <pending> !

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