0

我正在尝试制作一个 javascript 游戏,并且我正在使用 WebSQL 来存储游戏数据。我创建了自己的数据库选择函数,它格式化查询结果,然后返回它们。

在这个特定实例中,我将返回的对象传递给结果函数。我还想传入其他两个变量,但我不断收到此错误“未捕获的 ReferenceError:planetInfo 未定义”。如果有人可以提供帮助,将不胜感激。提前谢谢你。

我也尝试过使用“selectRowPlanets('query',outcomes(shipInfo,arrivalNumber));”,但仍然没有运气。

/** db.js **/ 
function selectRowPlanets(query, callBack){ // <-- extra param
  var result = [];
  db.transaction(function (tx) {
    tx.executeSql(query, [], function(tx, rs){
      for(var i=0; i<rs.rows.length; i++) {
        var row = rs.rows.item(i);
          result[i] = { id:          row['id'],
                        name:        row['name'],
                        owner:       row['owner'],
                        colum:       row['colum'],
                        row:         row['row'],
                        ships:       row['ships'],
                        production:  row['production'],
                        percent:     row['percent']
        }
      }
      callBack(result); // <-- new bit here
    }, errorHandler);
  });
}


/** function.js **/
function selectDestination(shipInfo, arrivalNumber) {
    selectRowPlanets('SELECT * FROM planets', outcomes(planetInfo, shipInfo, arrivalNumber));
}   

function outcomes(planetInfo, shipInfo, arrivalNumber){
        console.log(arguments);
}
4

1 回答 1

1

当您运行此代码时:

selectRowPlanets('query', outcomes(shipInfo, arrivalNumber));

输出作为outcomes(shipInfo, arrivalNumber)回调传递,而不是实际函数。

制作一个调用您的代码的匿名函数包装器:

selectRowPlanets('query', function() { outcomes(shipInfo, arrivalNumber) });
于 2011-12-04T04:30:23.367 回答