Узел Js MsSql Асинхронный запрос к серверу и проблема с процедурой - PullRequest
0 голосов
/ 01 октября 2018

Мне нужен запрос синхронизации и результаты.Моя функция не ждет ответа базы данных.Q defer не работает.await функция не работает.promise не работает.

Используется : Патрик Симек (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;
}

1 Ответ

0 голосов
/ 25 июля 2019

Если я правильно понимаю вашу проблему, выполнение вашей функции заканчивается до того, как вы получите ответ из базы данных.

Я не вижу ключевое слово wait в вашем коде.Вот как асинхронные функции можно использовать в режиме «синхронизации».

Вы видели примеров для пакета mssql?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...