在javascript中从mssql.query接收变量
下面是我想做的一个简化版本。我想保存从mssql.query获得的值,并在mssql.query函数外部检索它。我使用变量total来实现这一点在javascript中从mssql.query接收变量,javascript,sql,function,azure,Javascript,Sql,Function,Azure,下面是我想做的一个简化版本。我想保存从mssql.query获得的值,并在mssql.query函数外部检索它。我使用变量total来实现这一点 var total; mssql.query("EXEC getMeetingInfo ?", [meetingID], { success: function(results1) { console.log(results1); 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是异步的,因此在设置总计之前,您的response.send正在运行。您需要将其移动到success函数中 更新: 要处理多个并将它们链接在一起,请执行类似以下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类可能比较合适,以使其更易于读取/维护,但是这种回调模型是在异步世界中实现这一点的正确方法。问题是我有多个mssql.query,我想运行/concatate,所以我需要能够在函数之外访问它。是否可以暂停,直到完成或其他事情?我不确定是否可以使其同步,但无论如何,这是不赞成的。您需要嵌套回调来实现这一点。。。我将更新answerIt返回[object object][object object][object object object]而不是实际数据。。。我得到了非常典型的异步javascript调用的JSON数据;如果您的SQL语句是正确的,我希望这些json中包含您的数据。解析它们将取决于您所期望的特定数据。