Вы должны понимать, как работает цикл обработки событий. Я был здесь однажды, и однажды совершил одни и те же ошибки.
Попробуйте синхронизировать обратные вызовы, так как вы хотите последовательно, например, так:
router.get('/getTarrifDetails', (req, res, next) => {
let result = [], count = 0;
Tarrif.find().distinct('tarrif_type', (err, docs) => {
async.forEach(docs, async ele => {
try {
let userCount = await User.countDocuments({ tarrif_type: ele });
result.push(userCount);
} catch (err) {
//your err goes here.
}
})
});
});
Я не уверен, что это будет работать на 100%, но попробуйте и отладьте немного.