Попытка повторить запрос MySQL, если он возвращает пустые результаты - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть запрос 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 запустится, проверим результат.он работает без ожидания.

, пожалуйста, дайте мне знать, чего не хватает в приведенном выше.заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...