我需要一个同步查询和结果。我的功能不是等待数据库响应。Q延迟不起作用。await函数不起作用。promise不起作用。
Used:Patrik (mssql@4.2.1)
这是我的密码:
Api函数代码
app.post('/api/LoginStep1', function (request, response) {
var Lang = request.query.Lang;
var Body = request.body;
var User = JSON.parse(Body.User);
TResponse = {};
TResponse = DoLogin(Lang, User);
response.status(200).send(JSON.stringify(TResponse, null, 3));
});数据库响应函数
function DoLogin(Lang, User) {
//var deferred = Q.defer();
TResponse = {};
SqlRequest.input('LangCode', sql.NVarChar, Lang);
SqlRequest.input('UsernameOrMail', sql.NVarChar, User.Mail);
SqlRequest.output('Status', sql.Int);
SqlRequest.output('StatusMessage', sql.NVarChar);
SqlRequest.execute('SpLoginStep1').then(function (response) {
//console.log(response.recordset);
TResponse.Status = response.output.Status;
TResponse.StatusMessage = response.output.StatusMessage;
//deferred.resolve(response);
//return deferred.promise;
//return callback(null, response);
}).catch(function (e) {
//return callback(e, null);
//deferred.resolve(e.status);
//deferred.reject(e);
//return deferred.promise;
});
////return deferred.promise;
}发布于 2019-07-25 18:05:33
如果我理解您的问题是正确的,您的函数执行将在从数据库获得响应之前结束。
我在您的代码中看不到await关键字。这就是如何在“同步”模式下使用异步函数。
你看过mssql包的mssql吗?
https://stackoverflow.com/questions/52592559
复制相似问题