Mag*_*ero 5 asynchronous mongodb node.js
有人可以指点或解释某种基于事件的设计模式来处理等待两个事件完成执行动作的情况.
我有一个加载异步的模板和一个同时发生的数据库调用.我有一个响应只有在这两个任务完成时才需要执行.
我能想出的唯一解决方案是做一些丑陋的事情,比如在事件结束时设置为真的布尔值,然后检查它们是否都是真的.有一个更好的方法吗?
只是添加一个克里斯回答的例子:
使用async,https://github.com/caolan/async
async.parallel([
function(callback){
// query a database, lets say mongodb/mongoose
User.findOne({email: email}, function(err, user){
callback(err, user);
});
},
function(callback){
// Load a template from disk
fs.readFile('views/user.html', function (err, data) {
callback(err, data)
});
}
], function(err, results){
// Should have [user, template data]
});
Run Code Online (Sandbox Code Playgroud)
或者用柜台:
var user = false,
template = false,
count = 2;
function build_user_view(){
// user, template should be available
}
User.findOne({email: email}, function(err, userDoc){
user = userDoc;
--count || build_user_view();
});
fs.readFile('views/user.html', function (err, data) {
template = data;
--count || build_user_view();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1432 次 |
| 最近记录: |