Como escrever uma função node.js que aguarda o acionamento de um evento antes de 'retornar&#39

Tenho um aplicativo de nó que énã um aplicativo Web - ele conclui uma série de tarefas assíncronas antes de retornar 1. Imediatamente antes de retornar, os resultados do programa são impressos no consol

Como garantir que todo o trabalho assíncrono seja concluído antes de retornar? Consegui alcançar algo semelhante a isso em um aplicativo Web, certificando-me de todas as tarefas que concluímos antes de chamar res.end (), mas não tenho nenhum equivalente para um 'evento' final a ser chamado antes de permitir que um script retorne.

Veja abaixo a minha função (quebrada) atualmente, tentando esperar até que o callStack esteja vazio. Acabei de descobrir que esse é um tipo de abordagem sem sentido porque o nó aguarda a conclusão do processHub antes de inserir qualquer uma das funções assíncronas chamadas processObjWithRef.

function processHub(hubFileContents){
    var callStack = [];
    var myNewObj = {};
    processObjWithRef(samplePayload, myNewObj, callStack);
    while(callStack.length>0){
        //do nothing
    }
    return 1
}

Nota: Eu tentei várias vezes anteriormente para obter esse tipo de comportamento com bibliotecas como async (veja minha pergunta relacionada emComo posso fazer esta chamada para solicitar no nodejs síncrona?), leve em consideração a resposta e os comentários antes de sugerir respostas baseadas em 'use asynch'.

questionAnswers(12)

yourAnswerToTheQuestion