Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Web SQL事务返回空_Javascript_Sql_Database_Html_Closures - Fatal编程技术网

Javascript Web SQL事务返回空

Javascript Web SQL事务返回空,javascript,sql,database,html,closures,Javascript,Sql,Database,Html,Closures,当我使用success回调直接写入DOM时,这就起作用了。但我想把数据从显示中分离出来,只是一个返回和数组。我尝试过的所有方法都返回空数组。有什么想法吗?我需要使用某种闭包吗 function getExercises(){ var result = [] db.transaction(function(tx) { tx.executeSql('SELECT id, title, weight, reps FROM exercises', [],func

当我使用success回调直接写入DOM时,这就起作用了。但我想把数据从显示中分离出来,只是一个返回和数组。我尝试过的所有方法都返回空数组。有什么想法吗?我需要使用某种闭包吗

function getExercises(){
    var result = []

    db.transaction(function(tx) {
            tx.executeSql('SELECT id, title, weight, reps FROM exercises', [],function(tx, rs) {
                for(var i=0; i<rs.rows.length; i++) {
                    var row = rs.rows.item(i)
                    result[i] = {
                        id: row['id'],
                        title: row['title'],
                        weight: row['weight'],
                        reps: row['reps']
                    }

                }

            })
        })
    return result;

};
函数getExercises(){
var结果=[]
数据库事务(功能(tx){
tx.executeSql('SELECT id,title,weight,reps FROM exercises',[],函数(tx,rs){

对于(var i=0;i事务是异步执行的,因此您需要对成功回调的结果进行处理。例如:

..
tx.executeSql('SELECT id, title, weight, reps FROM exercises', [],function(tx, rs) {
      var result = [];
      for(var i=0; i<rs.rows.length; i++) {
          var row = rs.rows.item(i)
          result[i] = {
                    id: row['id'],
                    title: row['title'],
                    weight: row['weight'],
                    reps: row['reps']
         }
      }
      console.log(result);
});
..
。。
tx.executeSql('SELECT id,title,weight,reps FROM exercises',[],函数(tx,rs){
var结果=[];
对于(var i=0;i