1

我们正在考虑冒险将我们现有的应用程序WebSql后端/数据层移植到JayData. 都是客户端。我们希望分两个阶段进行移动,允许我们的应用程序继续使用现有方法从数据库中读取,同时我们的解析将移动到允许 JayData 控制所有读/写数据结构。

早期的测试非常顺利。 JayData是一个很好的 ORM 并且易于使用。但是,我们一次又一次遇到错误:

Uncaught TypeError: Cannot set property 'initData' of undefined SqLiteProvider.min.js:35
DefaultError: DEFAULT ERROR CALLBACK!

Exception {name: "DefaultError", message: "DEFAULT ERROR CALLBACK!", data: Arguments[1], _getStackTrace: function}

根据日志,解析器(使用 JayData)的每个阶段都成功完成了读取和写入。然而,该数据库通常具有尚未填充的表。所有表都在相同的上下文中打开并使用控制$.Deferreds.

JayData 认为它已完成交易并且错误实际上告诉我是不是“误报”?

打开数据库(在 JayData 之外)并在context打开(但未使用)时修改表是否有问题?

更新

按照评论中的说明进行操作。
源在第 424 行抛出异常-items[i].physicalData.initData = item.rows[0];

4

2 回答 2

2

在与 JayData 团队进行了长时间的交谈后,问题是由于试图同时在一个上下文中执行多个操作而引起的。该团队建议使用在共享上下文上运行的一系列承诺,然后在最后阶段提交更改。这解决了我所有的问题。

于 2013-05-28T10:40:38.803 回答
0

我们需要更多信息,所以: - 请使用未缩小的版本,以便我们更好地定位错误 - 如果您使用 chrome,然后将其设置为暂停未捕获的异常(紫色符号),当它停止环顾四周时,也许可以在那里学习 - 创建一个小例子(最好在 jsfiddle 上),这样我们就可以调试它

于 2013-04-19T14:44:05.350 回答