Como posso forçar a função de esperar até que o código foreach termine em nodejs?

Ammar Mousa

Tento atualizar o valor dos membros do grupo para cada grupo e, depois disso, quero retornar novos grupos atualizados. Faço isso adicionando cada grupo ao array de resultados que declarei antes.

mas eu sempre obtive o resultado vazio na matriz de resultados. Alguém sabe como posso fazer a execução sequencialmente, não vou retornar o comando primeiro

Este é o meu código:

searchGroups: async (groupIdsList, accountId) => {
  var result = [];
  return Group.find({
    _id: { $in: groupIdsList },
    accountId: mongoose.Types.ObjectId(accountId),
  }).then((groupList) => {
    groupList.forEach(function (group) {
      groupService
        .getMembersUserDetails(
          group.members,
          mongoose.Types.ObjectId(accountId)
        )
        .then((members) => {
          group.members = members;
          result.push(group);
        });
    });

    return result;
  });
};
Ashish Modi

Já que você está usando async, você pode aproveitar awaite simplificar o código assim.

Observe também que forEach não oferece suporte a promessas, então você precisa usar um for..ofou Promise.allcom .mapse pudesse fazer as coisas em paralelo.

Algo assim.

searchGroups: async (groupIdsList, accountId) => {
  const groupList = await  Group.find({"_id": {"$in": groupIdsList}, "accountId": mongoose.Types.ObjectId(accountId)});
  return Promise.all(groupList.map(async group => {
    group.members = await groupService.getMembersUserDetails(group.members, mongoose.Types.ObjectId(accountId));
    return group;
  }));
};

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Como posso forçar um bloco de código a esperar até que uma chamada de API termine em Typescript?

Como posso esperar que um bloco de conclusão termine em objetivo-c ios

Como posso fazer meu código / formulário principal esperar que a função de outra classe termine em C #, sem qualquer congelamento?

Como posso esperar até que a assinatura termine antes de retornar um valor de outra função

Como esperar que a chamada assíncrona JSZip .forEach () termine antes de executar o próximo código?

Como esperar corretamente até que a função termine de funcionar rapidamente?

Como esperar que a função termine no SwiftUI?

Como fazer Jest esperar que todo o código assíncrono termine a execução antes de esperar uma asserção

Como posso esperar que o form2 termine?

Como posso esperar que um thread termine com o .NET?

Android como esperar que o código termine antes de continuar

Como fazer o forEach esperar até que a assinatura termine?

Como esperar até que uma linha de código termine antes de começar a próxima no Unity?

Como posso esperar que uma solicitação assíncrona termine de usar NSURL?

Como NÃO esperar que um thread termine em Python

Como esperar que o processo do Windows termine antes de abrir o arquivo em java

Como não esperar que a função termine python

Como não esperar uma função até que ela termine?

Como não esperar uma função até que ela termine?

Como esperar que a função personalizada GAS termine e, em seguida, continuar usando a API de planilhas do Google?

Como esperar apenas que o primeiro thread de um array termine em Ruby?

Como esperar que um fio de reflexão termine

Como esperar que o Picasso termine de carregar as imagens no Android?

Como esperar que a chamada de serviço HTTP termine no componente

Como esperar que .map () termine a execução antes de continuar para as próximas linhas de código

Como esperar que uma função termine em um loop infinito?

Como esperar que a função termine na rota expressa

Como esperar que a função termine no loop js?

Como esperar que o JavaScript termine no dramaturgo

TOP lista

  1. 1

    R Shiny: use HTML em funções (como textInput, checkboxGroupInput)

  2. 2

    UITextView não está exibindo texto longo

  3. 3

    Dependência circular de diálogo personalizado

  4. 4

    Acessando relatório de campanhas na AdMob usando a API do Adsense

  5. 5

    Como assinar digitalmente um documento PDF com assinatura e texto visíveis usando Java

  6. 6

    R Folheto. Dados de pontos de grupo em células para resumir muitos pontos de dados

  7. 7

    Setas rotuladas horizontais apontando para uma linha vertical

  8. 8

    O Chromium e o Firefox exibem as cores de maneira diferente e não sei qual deles está fazendo certo

  9. 9

    Definir um clipe em uma trama nascida no mar

  10. 10

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  11. 11

    Como dinamizar um Dataframe do pandas em Python?

  12. 12

    regex para destacar novos caracteres de linha no início e no fim

  13. 13

    Why isn't my C# .Net Core Rest API route finding my method?

  14. 14

    Como obter a entrada de trás de diálogo em treeview pyqt5 python 3

  15. 15

    Tabela CSS: barra de rolagem para a primeira coluna e largura automática para a coluna restante

  16. 16

    How to create dynamic navigation menu select from database using Codeigniter?

  17. 17

    Como recuperar parâmetros de entrada usando C #?

  18. 18

    Changing long, lat values of Polygon coordinates in python

  19. 19

    Livros sobre criptografia do muito básico ao muito avançado

  20. 20

    Método \ "POST \" não permitido no framework Django rest com ações extras & ModelViewset

  21. 21

    Pesquisa classificada, conte números abaixo do valor desejado

quentelabel

Arquivo