我有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);
}
}
等待时发生错误仅对异步功能有效。尽管我的函数是异步的,但同样的错误。如果我删除一个等待然后循环不等待mysql运行n检查结果。它正在运行而无需等待。
请让我知道上面缺少的内容。预先感谢。