Как написать функцию node.js, которая ожидает события, чтобы сработать, прежде чем «вернуться»?

У меня есть приложение узла, котороене веб-приложение - оно выполняет серию асинхронных задач перед возвратом 1. Непосредственно перед возвратом результаты программы выводятся на консоль.

Как мне убедиться, что вся асинхронная работа завершена, прежде чем вернуться? Мне удалось добиться чего-то подобного в веб-приложении, убедившись, что все задачи, которые мы выполнили до вызова res.end (), но у меня нет эквивалента для вызова окончательного «события», прежде чем позволить скрипту вернуться.

Смотрите ниже для моей (сломанной) функции в настоящее время, пытаясь дождаться, пока callStack пуст Я только что обнаружил, что это своего рода бессмысленный подход, потому что узел ожидает завершения processHub, прежде чем вводить какую-либо асинхронную функцию, вызываемую в processObjWithRef.

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

Примечание: я много раз пытался достичь такого поведения с помощью библиотек, таких как async (см. Мой связанный вопрос наКак я могу сделать этот вызов для запроса в nodejs синхронным?) поэтому, пожалуйста, примите во внимание ответ и комментарии там, прежде чем предлагать какие-либо ответы, основанные на «просто используйте асинхронность».

Ответы на вопрос(6)

Ваш ответ на вопрос