在javascript中接收来自mssql.query的变量

Receiving a variable from mssql.query in javascript

本文关键字:mssql query 变量 javascript      更新时间:2023-09-26

下面是我想做的事情的简化版本。我想保存从mssql.query获得的值,并在mssql.query函数的外部检索它。我正在使用变量"total"来做到这一点。

var total;
    mssql.query("EXEC getMeetingInfo ?", [meetingID],  
    {
        success: function(results1) {            
            console.log(results1);
            total = results1;
      },
      error: function(err) {
            console.log("error is: " + err);
            response.send(statusCodes.OK, { message : err });
      }
    });
    response.send(statusCodes.OK, total ); //does not work 

mssql.query是异步的,所以在设置total之前,response.send正在运行。你需要把它转移到成功函数中。

更新:要处理多个并将它们链接在一起,请执行以下操作(psuedo代码):

var total = 0;
mssql.query(query, [],
{
    success: function(results1) {            
        total = total + {queryresult};
        mssql.query(query, [],
        {                success: function(results1) {            
                total = total + {queryresult};
                //Keep nesting as needed, and on last nest call this
                response.send(statusCodes.OK, total );
            }
        }       
    }
}

请注意,为回调创建一个单独的javascript类可能是合适的,以使其更易于读取/维护,但这种回调模型是在异步世界中实现这一点的正确方法。