0

我在 angularjs 中有一个 JS-Data 资源,每次我inject在(Jasmine)测试中调用它时,测试都会变慢,最多需要 700 毫秒。

我已经ejectAll()在每次测试后做一个。它也没有做任何$http请求,所以我没有线索......

任何想法为什么 JS-Data 注入在我的测试中可能如此缓慢?

4

1 回答 1

0

找到它:在我的资源定义中,我将UseClass属性设置为更改实例的模型,用 getter through 替换数组Object.defineProperty如此处所述:

每当该资源的商店中的任何项目发生更改时,DS.change 都会在该资源上触发。

getter 导致 JS-Data 认为实例已更改,从而触发了无限摘要循环。在 10 个摘要之后,angular 放弃了,但这需要一些时间,导致测试缓慢。

经验教训:不要使用 getter 属性扩展持久化 DS 模型实例,因为它们会触发无限变化。

于 2016-06-23T13:21:32.397 回答