如何使用objectstore.put()将记录插入IndexedDB后返回自动递增的ID?
以下是我的代码:
idb.indexedDB.addData = function (objectStore, data) {
var db = idb.indexedDB.db;
var trans = db.transaction([objectStore], READ_WRITE);
var store = trans.objectStore(objectStore);
var request = store.put(data);
request.onsuccess = function (e) {
//Success, how do I get the auto incremented id?
};
request.onerror = function (e) {
console.log("Error Adding: ", e);
};
};
答案 0 :(得分:7)
使用e.target.result
。由于API是异步的,因此必须使用回调来获取返回值,如下所示:
idb.indexedDB.addData = function (objectStore, data, callback) {
var db = idb.indexedDB.db;
var trans = db.transaction([objectStore], READ_WRITE);
var store = trans.objectStore(objectStore);
var request = store.put(data);
request.onsuccess = function (e) {
callback(e.target.result);
};
request.onerror = function (e) {
console.log("Error Adding: ", e);
callback(undefined);
};
};
答案 1 :(得分:0)
解决。您可以使用request.result
获取增加的ID。