У меня есть запрос MySQL, мне нужно повторить его 3 раза с некоторой задержкой, если результат пустой.если я получу результат в первый раз, тогда он должен вернуть результат.иначе он будет повторяться.
мой код:
async function checkMySqlQuery(queries_data,callback){
try {
connection.connect(function(err) {
if (err) {throw err;}//
});
var db_queries=queries_data['db_queries'];
var params=queries_data['params'];
var mysql={'data':""};
connection.query(db_queries, params, function(
err,rows
) {
gloabl_vars.query_run.query_count++;
if (err) {
console.log("error: ", err);
callback(err);
} else {
var temp=rows;
if(temp.length >0){
mysql.data = {"info" :this.sql,"msg":gloabl_vars.messages.success,"res":temp};
callback(mysql);
}
else {
gloabl_vars.sleep(gloabl_vars.query_run.wait_time);
if(gloabl_vars.query_run.query_count<3){
await checkMySqlQuery(queries_data,function(data){
console.log("iteration");
console.log(data);
});
}
else{
console.log("Else case");
mysql.data = {"info" :this.sql,"msg":gloabl_vars.messages.failed,"res":temp};
callback(mysql);
}
}
}
});
}
catch(e){
console.log(e);
callback(e);
}
}
Получаю ошибку, так как ожидание допустимо только для асинхронной функции.Несмотря на то, что моя функция асинхронна, тоже ошибка.если я удаляю await, то цикл не ждет, пока mysql запустится, проверим результат.он работает без ожидания.
, пожалуйста, дайте мне знать, чего не хватает в приведенном выше.заранее спасибо.