我正在尝试编写一个coffeescript websql函数来插入一些测试数据。我希望能够获取插入项目的ID,因为我在保存项目时自动生成ID。我试着这样做,
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变量总是来自'undefined',因为上面的返回值@results是'undefined'。不知道为什么会发生这种情况。
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;
};