gpt4 book ai didi

javascript - 如何处理未捕获的 java.lang.IllegalStateException : Initial revision has already been set?

转载 作者:行者123 更新时间:2023-11-29 10:47:47 25 4
gpt4 key购买 nike

当我的基于实时 API 的应用程序使用量很大时,新用户很难加载数据模型。在这种情况下,用户会在他们的控制台中看到以下错误:

Uncaught java.lang.IllegalStateException: Initial revision has already been set. 
Ry index.html:705
Vx index.html:134
T index.html:900
bb index.html:399
Pf index.html:462
Sf index.html:982
(anonymous function) index.html:490
Kh api:152
W.Ga api:151
...

其中堆栈跟踪表示实时 API 注入(inject)的代码。

当现有用户在一段时间内停止与数据交互时,新用户能够按预期加载数据模型。

我已将一个错误函数传递给加载调用——正如它在 realtime-client-utils.js 中的 rtclient.RealtimeLoader.prototype.load 中完成的那样Google 作为 Quickstart documentation 的一部分提供的示例代码.我的错误函数被调用了一些错误;但是,对于这个问题所涉及的错误情况,它不会被调用。

我的数据模型加载代码应该是什么样子才能让用户能够在所有使用条件下使用我的应用程序?

Mayra 建议只有当两个用户同时尝试初始化模型时才会出现此错误;但是,这与我看到的行为不符。为了帮助获得答案,我创建了一个 jsFiddle example可以重现问题。该示例基于快速入门页面中提供的代码,仅进行了少量更改。

要重现问题,请在三个浏览器选项卡中打开 jsFiddle 示例,然后...

  • 如果您尚未授权,请授权。
  • 从第一个选项卡复制文件 ID。
  • 在第二个选项卡中按切换文件按钮并将文件 ID 粘贴到提示框中。
  • 修改文本框中的文本并验证更改是否在选项卡之间传播...如果是这样,Realtime API 将按预期工作。
  • 现在按下两个选项卡中的 Create Data 按钮,让应用程序承受一些负载。 (一些细节记录在控制台中)
  • 要在第三个选项卡中查看问题,请打开控制台以查看日志消息。
  • 同样在第三个选项卡中,将文件 ID 切换为其他两个选项卡使用的相同 ID。观察第三个选项卡无法协作处理指定的文件 ID,并看到我观察到的错误。

有趣的细节是初始化函数根本没有被调用,在这种情况下只有一个用户试图初始化数据模型。

最佳答案

只有当两个用户同时尝试初始化一个新文档时才会发生这种情况。为了保证文档只被初始化一次,如果第二个用户试图重新初始化一个已经初始化的文档,你会得到这个异常。

正确的做法是在看到此异常时重新加载文档。但是,令人惊讶的是您经常看到这种情况。

您是否在初始化函数中做了很多工作?您是否有一些设置让很多用户尝试同时加载同一个新文档?

关于javascript - 如何处理未捕获的 java.lang.IllegalStateException : Initial revision has already been set?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16368549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com