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

224
Vistas
Llamar a una operación asíncrona en una función de mapa

Estoy ejecutando una función de mapa en una matriz de objetos llamada channelList, estoy verificando dos condiciones para cada objeto en la matriz, si se cumple una condición, simplemente devuelvo un componente React, esta parte funciona bien. El problema es el otra condición if, en la que estoy llamando a una promesa, y después de obtener el resultado de esta promesa, devuelvo el elemento React. Por lo tanto, la función de mapa no espera el resultado de la promesa en la segunda condición if, continúa con es una operación síncrona para el siguiente objeto, obtengo el resultado deseado de la otra condición pero no de la condición de operación asíncrona, entonces, ¿qué puedo hacer para que la función de mapa se detenga para el resultado de la promesa para poder obtener el deseado? resultado.

 {channelList.map((channel) => { console.log(channel); const channelMetaData = JSON.parse(channel?.Metadata); console.log(channelMetaData); //If this condition is satisfied,go for an async operation,and then return. if(channelMetaData?.isOneToOne){ listChannelMemberships(channel.ChannelArn,userId).then(async (res)=>{ if(res[0].Member.Name==userData.username){ console.log("I am this user",res[0].Member.Name); var otherPerson = res[1].Member.Name; }else if(res[1].Member.Name==userData.username){ console.log("I am this user",res[1].Member.Name); var otherPerson = res[0].Member.Name; } console.log(otherPerson); return <ChannelItem key={channel.ChannelArn} name={channel.Name} actions={loadUserActions(userPermission.role, channel)} isSelected={channel.ChannelArn === activeChannel.ChannelArn} onClick={e => { e.stopPropagation(); channelIdChangeHandler(channel.ChannelArn); }} unread={unreadChannels.includes(channel.ChannelArn)} unreadBadgeLabel="New" > </ChannelItem> }) } //Or else,go for this condition. else{ return <ChannelItem key={channel.ChannelArn} name={channel.Name} actions={loadUserActions(userPermission.role, channel)} isSelected={channel.ChannelArn === activeChannel.ChannelArn} onClick={e => { e.stopPropagation(); channelIdChangeHandler(channel.ChannelArn); }} unread={unreadChannels.includes(channel.ChannelArn)} unreadBadgeLabel="New" > </ChannelItem> }
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