尝试迭代mysql查询(如果返回空结果)

时间:2018-11-22 06:48:40

标签: mysql node.js async-await

我有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检查结果。它正在运行而无需等待。

请让我知道上面缺少的内容。预先感谢。

0 个答案:

没有答案