Я пытаюсь отобразить страницу «проектов», извлеченных из базы данных.Существует два типа проектов, касающихся пользователя: проекты, которыми они владеют, и проекты, членами которых они являются.
Я использую два асинхронных запроса к базе данных, однако они могут завершаться в разное время, и я только хочу, чтобы страница на них завершалась.
Вопрос: Как отложить рендеринг до завершения транзакций базы данных?
var username = req.session.username;
var memberProjects = [];
var ownerProjects = [];
var membersQuery = false;
var ownerQuery = false;
projects.find({"members.username" : username}).toArray(function(err, results)
{
for(var i = 0; i < results.length; i++)
{
var project = {
title : results[i].title,
id : results[i]._id
}
memberProjects[i] = project;
}
membersQuery = true;
});
projects.find({owner : req.session.username}).toArray(function(err, results)
{
for(var i = 0; i < results.length; i++)
{
var project = {
title : results[i].title,
id : results[i]._id
}
ownerProjects[i] = project;
}
ownerQuery = true;
});
if( membersQuery && ownerQuery )
{
res.render('project', {
ownerProjects : ownerProjects,
memberProjects : memberProjects
});
}