Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

225
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda