首页 > 解决方案 > 如何获取使用 dexie js 立即添加的值的 id?

问题描述

我如何访问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);
          });

}

我明白了undifined

标签: javascriptdexie

解决方案


正确答案是:创建的 id 将作为参数在 promise 中传递。文档中的示例:

db.table('todos')
  .add(todo)
  .then((id) => {
    // ...
  });

或以 async-await 样式返回:

const id = await db.table('todo').add(todo);

在您的示例中,您使用了错误的方法语法.get()。正确的是:

table.get({keyPath1: value1, keyPath2: value2, ...});
// e.g.
table.get({id: 15})
// or
db.friends.add({
        name: 'user',
        age: 23,
        loves:'water',
    }).then(function(id){
         return db.friends.get({id});
    })

推荐阅读