【发布时间】:2014-02-11 18:48:08
【问题描述】:
我想知道处理事件 api 的最佳方法是什么。我的第一个想法是将它包装到回调 api 中,但我觉得我在这里被阻塞了,这不是最好的方法。
假设我有一个从数据库返回值的库并且它是事件:
var connection = new Connection(config);
var query = new Query();
query.on('data',function(row){});
query.on('done',function(){});
这是我的看法……
getAllCustomer(clb){
var connection = new Connection(config);
var query = new Query();
var results = [];
query.on('data',function(row){
results.push(row);
});
query.on('done',function(){
clb(results);
});
connection.execute(query);
connection.close();
}
我想在 hapijs 或 expressjs 应用中使用它
喜欢这样使用
handler: function(request,reply){
getAllCustomer(function(err,result){
reply(result);
});
}
getAllCustomers() 似乎在查询完成之前一直处于阻塞状态! 那么推荐的处理方法是什么? 将事件 api 包装在回调 api 中的设计决策是否正确? 或者我应该将流式行与 expressjs / hapijs 一起传递吗? 所以我正在寻找一种最佳实践方式......节点方式......
感谢您的帮助。
【问题讨论】:
标签: javascript node.js asynchronous callback