我使用下面的代码执行一些查询并发送对查询结果进行一些验证的响应。对于这种情况,我在Node JS中使用异步模块。
async.series([
function(callback){
common.commonValidations(db);
callback();
},
function(callback){
console.log('second function');
res.end(JSON.stringify(gErrors));
callback();
}
], function(err){
console.log('sending res to client');
console.log(err);
});
common.commonValidations(db)
函数用于执行少量db2查询。
我的问题是,虽然我使用的是异步模块,但在执行查询时会将响应发送到客户端。根据我对异步模块的理解,一旦第一个函数完成它的工作,就会执行数组中的第二个函数。
有人可以帮我这个吗?提前致谢。
答案 0 :(得分:1)
看起来common.commonValidations(db)
是一个异步函数,但你不是在等待它完成。在callback()
的答案回来之前,您正在调用commonValidations
函数。
一个可能的改变可能就像
common.commonValidations(db,function(err,data) {
//check error
//process data
//and then
callback()
})