Javascript 如何使用coffeescript从websql db获取插入项的id?
我试图编写一个coffeescript websql函数来插入一些测试数据。我希望能够获取插入项目的id,因为我在保存项目时自动生成id。我试着在这里这样做Javascript 如何使用coffeescript从websql db获取插入项的id?,javascript,cordova,coffeescript,web-sql,Javascript,Cordova,Coffeescript,Web Sql,我试图编写一个coffeescript websql函数来插入一些测试数据。我希望能够获取插入项目的id,因为我在保存项目时自动生成id。我试着在这里这样做 insert: (data) -> console.log "Inserting test data.." @db.transaction (tx) => tx.executeSql(@INSERT_QUERY, data,
insert: (data) ->
console.log "Inserting test data.."
@db.transaction (tx) =>
tx.executeSql(@INSERT_QUERY,
data,
(tx,@results) => console.log(@results.insertId),
(tx,error) => console.error(error),
)
@results
但是id变量总是以“未定义”的形式出现,因为上面的返回值@results是“未定义”的。不知道为什么会这样
id = root.taskTable.insert(data)
为了以防万一,我还附加了上述coffeescript代码的输出java脚本代码
dbTable.prototype.insert = function(data) {
console.log("Inserting test data");
this.db.transaction((function(_this) {
return function(tx) {
return tx.executeSql(_this.INSERT_QUERY, data, function(tx, results) {
_this.results = results;
return console.log(_this.results.insertId);
}, function(tx, error) {
return console.error(error);
});
};
})(this));
return this.results;
};
您是否尝试过
console.log(\u this.results)代码>?这将允许您遍历整个results对象,并可能找到包含id.OK的对象,但如果我只执行console.log(_this.results)操作,我将如何遍历它?如果这是显而易见的,我很抱歉。谷歌没有帮我更好地解释它。你需要连接一个远程检查器。您正在使用什么设备或模拟器进行测试?您使用的是什么操作系统?我正在使用ripple emulator在phonegap上进行测试。我可以在chrome中看到控制台日志。但我希望该id可以在代码中访问以供进一步处理。当您在控制台中看到结果时,您应该能够单击该对象并查看其中的属性。这将显示id的位置(如果它在那里)。如果是,则可以更改代码以获取id。如果不在其中,则需要查找如何访问id(可能是需要调用的方法)