Javascript 为什么Dexie在事务()中的modify()之后返回旧数据?

Javascript 为什么Dexie在事务()中的modify()之后返回旧数据?,javascript,indexeddb,dexie,dexiejs,Javascript,Indexeddb,Dexie,Dexiejs,我对数据库进行了更改,并尝试读取更新的数据,但我得到了旧的数据,代码如下: kera.db.transaction('rw', kera.db.settings, async () => { await kera.db.settings.where('name').equals('background') .modify({[setting]: value}); await kera.db.settings.get('background', (data)

我对数据库进行了更改,并尝试读取更新的数据,但我得到了旧的数据,代码如下:

kera.db.transaction('rw', kera.db.settings, async () => {
    await kera.db.settings.where('name').equals('background')
        .modify({[setting]: value});
    await kera.db.settings.get('background', (data) => {
      console.log(data);
    });
  });

如果我以后调用相同的get()函数,我这次会得到更新的数据。

我认为代码中可能还有其他东西失败了。尝试捕捉被拒绝的交易承诺,看看是否有失败的地方。还要验证闭合变量设置是否正确以及该值是否正确。在本例中,假设主键是
name
。如果不是这样,则需要将db.settings.get('background')更改为db.settings.get({name:'background'})。我试图重新解释这个问题,但它对我有效:


我清除了页面数据,它突然开始像aspected一样工作。

承诺没有被拒绝,也没有发现错误。另外,是的,主键是
name
。由于您的代码与我的代码相似,并且工作正常,因此我将检查代码的不同部分。