Я должен использовать несколько запросов SQL.Поэтому я создаю Обещание, чтобы сделать это.Но мне нужно использовать это обещание в том же обещании.Когда я пытаюсь остановить соединение SQL с помощью «connection.end ()», у меня в консоли появляется эта ошибка:
Ошибка: невозможно поставить запрос в очередь после вызова quit.
ЕслиЯ не пишу "connection.end ()", мой код работает.
function requete( sql ) {
return new Promise( ( resolve, reject ) => {
this.connection.query( sql, ( err, rows ) => {
if ( err )
return reject( err );
resolve( rows );
} );
} );
}
myRouter.route('/profil/verifBadge')
.get(function (req, res) {
var tabBadgeAjoute = [];
var tabVerifBadge = [];
//Etape 1
requete("my SQL request")
.then( (rows) => {
if (rows.length != 0){
for (let competence of rows){
if (competence.TotalLike >=5) { tabVerifBadge.push("one SQL request"); tabBadgeAjoute.push(myString)}
if (competence.TotalLike >=10) { tabVerifBadge.push("one SQL request"); tabBadgeAjoute.push(myString)}
if (competence.TotalLike >=25) { tabVerifBadge.push("one SQL request"); tabBadgeAjoute.push(myString)}
if (competence.TotalLike >=100) { tabVerifBadge.push("one SQL request" ); tabBadgeAjoute.push(myString)}
}
}
})
//Etape 2
.then( () => {
for (let requeteSQL in tabVerifBadge){
requete(tabVerifBadge[requeteSQL].toString())
.then( (rows2) => {
if (rows2.length == 0){
requete("one SQL request")
.then(() => console.log("ok")
.catch( err => console.dir(err));
};
})
.catch( err => console.dir(err));
}
})
.then( () =>
res.send(JSON.stringify({"status": 200, "error": null, "response": "ok"}))
)
.then((rows) => connection.end())
.catch( err => {
// handle the error
console.dir(err);
})
})