什么是“DOMException:条目已经存在”?

时间:2015-09-19 14:52:35

标签: javascript google-chrome indexeddb service-worker domexception

tl; dr我的网络应用程序收到错误“DOMException:条目已经存在”,我不知道它意味着什么。我无法在互联网上找到这个错误的解释;可能我的googlefoo不够用。

更长的版本。

我有相当简单的todolist es6 app

  • 将内容存储在IndexedDB和
  • 使用服务工作者拦截提取到“/ sync”以运行一些代码,这些代码将IndexedDB与服务器同步。
  • 使用服务工作者缓存主页面(使用cache.put,如果缓存条目已存在,则不应该抱怨)

一切都很好。但每隔一段时间,服务人员就会发出错误......

Uncaught (in promise) TypeError: network error at TypeError (native) (program:1)
Uncaught (in promise) DOMException: Entry already exists. (program:1)

... chrome(ubuntu上的45.0.2454.93(64位))慢慢爬行,直到我转到chrome:// serviceworker-internals并停止服务工作者之前没有任何工作。在那之后,一切都很好,再过几天。

难以调试,因为错误没有告诉我代码的哪一行引发了问题。

1 个答案:

答案 0 :(得分:0)

如评论中所述,但要更明确地回答:

这被追溯到Chrome中Cache API实现中的Windows特定错误 - https://crbug.com/542668

修复程序正在进行中,代码会进入。修复程序应该通过正常的Chrome发布过程 - 一天或两天内建立Canary,几周后发布Beta,然后在6周内发布稳定版本。