处理Google Drive Realtime JS应用程序的DocumentClosedError

时间:2014-09-15 18:54:15

标签: google-drive-realtime-api google-drive-api

Google Drive Realtime API有一组很好的错误类型供您监听,因此您可以单独处理每个案例:

https://developers.google.com/drive/realtime/reference/gapi.drive.realtime.ErrorType

不幸的是,此列表不包含DocumentClosed错误。出于某种原因,该错误是API中自己的对象。

https://developers.google.com/drive/realtime/reference/gapi.drive.realtime.DocumentClosedError

对于我的生活,我无法弄清楚如何处理这个错误。我在realtime.load上设置了一个onError侦听器函数,但只捕获了与DocumentClosedError不同的错误。

有没有办法处理/侦听这种特殊类型的错误?我也尝试过document.addEventListener,但这是一次绝望的尝试而且无法正常工作

2 个答案:

答案 0 :(得分:1)

对于其他任何想知道这一点的人来说,它与角度和谷歌驱动器之间的绑定有关。

该文件已关闭谷歌,但角度绑定仍然存在。

我们通过拦截基于此的角度误差来处理这个问题。 http://odetocode.com/blogs/scott/archive/2014/04/21/better-error-handling-in-angularjs.aspx

答案 1 :(得分:1)

DocumentClosedError是一种不同类型的错误,因为它只在您访问无效文档时抛出。实时文档应该无效的唯一时间是:1)在ErrorType中定义的致命错误之一由错误函数处理之后,或者2)在文档上自己调用.close()之后。

跟踪您是否在客户端上点击这两个条件之一并确保之后不访问Document是如何防止错误触发。理想情况下,如果您进入文档关闭的状态,应用程序应该拆除其对实时模型的引用并重新连接以减少将引发异常的位置。

TL; DR:如果您正在使用DocumentClosedErrors,则应该更改处理ErrorType中定义的致命错误的方式。