Постараюсь коротко
Не допускается на один коннект одновременно (тут слово одновременно очень понятие растяжимое) более одного запроса
т.е. имеем connect
далее запрос
let request = new REQUEST(.....)
и его выполнение
this.connection.execSql(request);
так вот, новый new REQUEST только когда полностью отработает вышеуказанный.
собственно асинками это не решается. один запрос и его выполнение и так находится в аsync и promise
но в это время "прибегает" с другого клиента запрос и все валит.
вопрос решается семафором
Т.о. если кто столкнется с подобной ошибкой - Requests can only be made in the LoggedIn state, not the SentClientRequest state
то кроме того что это означает в переводе, может еще быть наличие конкурирующего запроса, который ломится в модуль mssql при незавершенном предыдущем запросе. И значит новый запрос просто нужно попридержать. ставим семафор, вешаем на него сопли типа await и все работает.
Всем спасибо
P.S.
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
по моему сначала ставятся обработчки потом начинается, прослушивание порта...
не примите как умничание
|