IndexedDB 为什么Dexie在transaction()中的modify()后返回旧数据?

mftmpeh8  于 2022-12-09  发布在  IndexedDB
关注(0)|答案(2)|浏览(210)

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

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()函数,则这次会得到更新后的数据。

vu8f3i0k

vu8f3i0k1#

我认为代码中可能还有其他失败的地方。尝试捕获事务的拒绝承诺,看看是否有什么失败的地方。还要验证闭包变量的设置和值是否正确。在示例中,假设主键是name。如果不是这样,则需要将db.settings.get('background')更改为db.settings.get({name:'background'})。我尝试重现这个问题,但它对我很有效:
https://jsitor.com/CV_2VhVvB

tmb3ates

tmb3ates2#

我清除了页面数据,它突然开始工作的方面。

相关问题