卸载前保存到 IndexedDB

ron*_*y l 6 javascript onbeforeunload promise indexeddb

我想在用户离开我的页面之前保存到 IndexedDB。我定期这样做,但由于它很大,我不想经常保存。

我当前的(损坏的)代码如下:

window.addEventListener('beforeunload', (event) => {
    persist(state);
});
Run Code Online (Sandbox Code Playgroud)

在这里,persist 立即返回一个承诺,并且在我有机会保存状态之前浏览器已经存在。

不幸的是,此时 IndexedDB 似乎没有同步 API。

有什么我可以做的让浏览器等待以便我可以将值存储到 IndexedDB 中吗?

Jos*_*osh 2

您可以在页面卸载时将其保存到 localStorage 吗?然后稍后在 localStorage 中检查该值,并在有更多时间时将其移至 indexedDB 中。