I'am trying to gather some data from my Chrome Extension Web SQL database with following code:
 function getHistory(year, month, day, callback){
  getDayIdByYMD(year, month, day, function(dysId){
    var sql = "SELECT DISTINCT HT_URL FROM HISTORIES WHERE HT_DYS_ID = ?;";
    db.transaction(function(tx){
      tx.executeSql(sql, [dysId], function(tx, results){
        var array = [];
        $.each(results.rows, function(index, element){
          var url = element['HT_URL'];
          array.push(url);
        });
        internalGetHistory(array, dysId, callback);
      });
    });
  });
}
function internalGetHistory(array, dysId, callback){
  var returnArray = [];
  $.each(array, function(index, url){
    getSingleHistoryArray(dysId, url, function(hist){
      var tmp = { Url : url, History : hist};
      returnArray.push(tmp);
    });
  });
  callback(returnArray);
}
function getSingleHistoryArray(dysId, url, callback){
  var sql = "SELECT HT_FROM, HT_TIME FROM HISTORIES WHERE HT_DYS_ID = ? AND HT_URL = ?;";
  db.transaction(function(tx){
    tx.executeSql(sql, [dysId, url], function(tx, results){
      var array = [];
      $.each(results.rows, function(index, element){
        var obj = {
          From : element['HT_FROM'],
          Time : element['HT_TIME']
        };
        array.push(obj);
        array.push(2);
      });
      callback(array);
    });
  });
}
function printHt(){
  getHistory(2016,7 - 1,28, function(o){
    console.log(o);
  })
}
But my problem is that function internalGetHistory does not return array. It's always empty. First sql query returns not empet array of urls. The next one - getSingleHistoryArray should return array of time and timespan corresponding to that url. There is no problem with connection to my database or database entries. I think that this question concrens javascript and callback functions. Thanks for your help!
 
     
    