Javascript 如何获取使用dexie js即时添加的值的id?
如何访问我已经添加的项目的Javascript 如何获取使用dexie js即时添加的值的id?,javascript,dexiejs,Javascript,Dexiejs,如何访问我已经添加的项目的id,因为项目偶尔会被删除,增加的id并不统一 我已经试过了,就像在文档中一样 var db = new Dexie('FRIENDS'); db.version(1).stores({ friends: '++id,name,age,loves' }); db.friends.add({ name: 'user', age: 23, loves:'water
id
,因为项目偶尔会被删除,增加的id并不统一
我已经试过了,就像在文档中一样
var db = new Dexie('FRIENDS');
db.version(1).stores({
friends: '++id,name,age,loves'
});
db.friends.add({
name: 'user',
age: 23,
loves:'water',
}).then(function(){
return db.friends.get('user');
}).then(function (res) {
console.log(res.id);
}).catch(function(error) {
console.log ("Ooops: " + error);
});
}
我在将来帮助任何人时都会得到不精确的
最终通过黑客破解解决了问题。
var db = new Dexie('FRIENDS');
db.version(1).stores({
friends: '++id,name,age,loves'
});
db.friends.add({
name: 'user',
age: 23,
loves:'water',
}).then(()=>{
db.friends.each(friend=>{
window.lastId = { id:friend.id };
})
.then(()=>{
console.log(window.lastId.id)
});
});
正确答案是:创建的id将作为promise中的参数传递。
文档中的示例:
db.table('todos')
.添加(待办事项)
。然后((id)=>{
// ...
});
或以异步等待样式返回:
const id=wait db.table('todo').add(todo);
在您的示例中,使用了错误的.get()
方法语法。正确答案是:
table.get({keyPath1:value1,keyPath2:value2,…});
//例如。
table.get({id:15})
//或
db.friends.add({
名称:“用户”,
年龄:23,,
爱:'水',
}).然后(函数(id){
返回db.friends.get({id});
})