节点JS-异步-响应是在执行查询时发送的

Node JS - Async - Response is sent while queries are being executed

本文关键字:查询 执行 异步 JS- 响应 节点      更新时间:2023-09-26

我正在使用以下代码执行一些查询集,并发送对查询结果进行验证的响应。对于这个场景,我在NodeJS中使用异步模块。

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查询。

这里我的问题是,虽然我使用的是异步模块,但在执行查询时,响应会被发送到客户端。根据我对异步模块的理解,数组中的第二个函数在第一个函数完成任务后就会执行。

有人能帮我吗?提前谢谢。

看起来common.commonValidations(db)是一个异步函数,但您并没有等待它完成。在commonValidations的答案返回之前,您正在调用callback()函数。

一个可能的变化可能像

common.commonValidations(db,function(err,data) {
  //check error
  //process data
  //and then
  callback()
})