刷新页面/关闭页面场景下 onUnload 删除indexedDB为什么得到不同的结果?

const onUnLoad = () => {
  console.log('----onUnLoad---')
  localforage
    .removeItem(KEY)
    .then(() => {
      alert('success')
      console.log('00000000')
    })
    .catch(e => {
      console.log('error', e)
    })
}

刷新页面会打印----onUnLoad---,但是不会删除数据

关闭页面的时候数据会真正删除。

使用到的第三方库 localforage.

有人能解释一下原因吗?

阅读 2.1k
1 个回答

刷新页面包括关闭页面和重新进入页面,而indexedDB操作是异步的,有可能在重新进入页面的时候数据还没有真正删除,需要等待一会,在你的项目中或许有重新填充数据的操作,看起来就像是数据没有删除

下面是测试,在一个纯净的页面中向indexedDB注入数据,并在刷新页面时删除数据,可以看到数据是删除了的
image.png

image.png

image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题