loops aninhados de forma assíncrona no Node.js, o próximo loop deve ser iniciado somente após a conclusão de um

Verifique abaixo o algoritmo ...

users = getAllUsers();
for(i=0;i<users.length;i++)
{
    contacts = getContactsOfUser(users[i].userId);
    contactslength = contacts.length;
    for(j=o;j<contactsLength;j++)
    {
         phones = getPhonesOfContacts(contacts[j].contactId);
         contacts[j].phones = phones;
    }
    users[i].contacts = contacts;
}

return users;

uero desenvolver essa mesma lógica usando o node.j

Eu tentei usar async comforeach econcat eforeachseries funções. Mas tudo falha no segundo nível.

Enquanto o ponteiro está obtendo contatos de um usuário, um valor dei aumenta e o processo está sendo iniciado para os próximos usuários. Não está aguardando o processo de obtenção de contatos e telefones para um usuário. e somente depois disso iniciando o próximo usuário. Eu quero conseguir isso.

Na verdade, quero que os usuários objetem com

Significa que todas as sequências estão sendo arruinadas. Alguém pode me dar uma idéia geral de como posso alcançar esse processo em série. Também estou aberto a alterar meu algoritmo.

questionAnswers(4)

yourAnswerToTheQuestion