Обратный вызов после завершения цикла for -в node.js

Мне нужна помощь с асинхронным характером node.js. У меня есть цикл for, который собирает данные из базы данных. "результат" - это массив, который затем должен быть возвращен основной функции.

user_collection.findOne({
            _id : uid
        }, function(error, user) {
            if(error)
                callback(error)
            else {
                for(var j = 0; j < user.contacts.length; j++) {
                    if(user.contacts[j].accepted == 'true') {
                        user_collection.findOne({
                            _id : user.contacts[j].contactId
                        }, function(error, user) {
                            result.push(user);
                        })
                    } 
                }
                callback(null, result);  // This callback executes before the for-loop ends, ofc
            }
        });

Как я могу гарантировать, что обратный вызов будет выполнен после завершения цикла?

6
задан KARTHIKEYAN.A 27 February 2018 в 06:26
поделиться