我正在尝试制作一个javascript游戏,而我正在使用WebSQL来存储游戏数据。我创建了自己的数据库选择函数,它格式化查询结果,然后返回它们。
在这个特定实例中,我将返回的对象传递给outcome函数。我还想传入另外两个变量,但我不断收到此错误“Uncaught ReferenceError:planetInfo未定义”。如果有人可以帮助它会非常感激。先谢谢你。
我也尝试过使用“selectRowPlanets('query',results(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);
}
答案 0 :(得分:1)
运行此代码时:
selectRowPlanets('query', outcomes(shipInfo, arrivalNumber));
outcomes(shipInfo, arrivalNumber)
的输出作为回调传递,而不是实际函数。
创建一个调用代码的匿名函数包装器:
selectRowPlanets('query', function() { outcomes(shipInfo, arrivalNumber) });