我从客户端收到一个请求,该请求需要从两个表中选择数据,从一个表中我需要在表2中选择1000条记录,我只需要选择两个记录,并通过回调进行处理。我想要两个回调函数执行后需要发送到我的客户端的响应,如何在节点js中实现呢?
您有以下选择:
回调模式
var f = function(somedata, cb){
// pick user from db
pickUserFromTable1(somedata, function(err, users){
// callled on completion of pickUserFromDB
if(err){
//handle error.
cb(err, null);
return;
}
pickUserFromTable2(users, function(err, finallySelectedUsers){
// called on completion of pickUserFromTable2
if(err){
// handle error.
cb(err, null);
// returning is important. or use else part of if to separate the case
return;
}
// call initiator's callback function on completion of both pickUserFromTable1 and pickUserFromTable2
cb(null, finallySelectedUsers);
});
})
}
注意:这种方法对短期项目很有用,但是如果依赖项链很长,则会导致一些维护问题(回调地狱)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句