我用 Node.js 编程已经有一段时间了,我发现自己越来越讨厌需要链接回调。例如,当您需要数据库中的多个模型时,如下所示:
Person.findOne({ 'name.last': 'Ghost' }, 'name occupation', function (err, person) {
Schedule.findOne({'person_id': person.id }, 'events', function(err, schedule) {
...
}
})
我正在寻找解决这个问题的方法。我的一个想法是做这样的事情:
function() {
var p;
var s;
var done = false;
Person.findOne(..., ..., function(err, person) {
p = person;
done = true;
});
while(!done){}
done = false;
Schedule.findOne(..., ..., function(err, schedule) {
s = schedule;
done = true;
});
while(!done){}
done = false;
// ...
}
如果我像这样进行查询,会对性能产生什么影响?我也对解决这个问题的其他想法持开放态度。