从Angular 1.2.18迁移到1.4x时$ q服务的变化

时间:2015-07-20 07:38:16

标签: angularjs angular-promise

我将角度版本1.2.4迁移到1.4x。但是我在$ q服务中面临问题。 以下是我的代码:

<1.2>版本1.2x

var deferred=$q.defer();

其中deferred.promise包含以下函数对象: catchfinallythen 在版本1.4x中,这已更改为$$state 如果有人遇到类似的问题。请分享你的想法..

2 个答案:

答案 0 :(得分:0)

在版本1.3.0-beta.18中取得了性能提升。

commit responsible有以下说明:

  

perf($ q):将Deferred和Promise方法移动到原型   
注意:延迟并没有获得将方法移动到原型的所有优点,   因为构造函数将实例方法绑定到&#34;这个&#34;支持无限制的执行。

  关闭#8300

这是为了提高性能,因为类的所有实例共享相同的原型,而如果你将它们作为每个实例的属性,浏览器必须为每个实例的函数分配内存,而不仅仅是一次。

答案 1 :(得分:0)

我只检查deferred属性,它仍然有三个函数catchfinallythenstate是一个属性。当我检查对象层次结构时,这些方法似乎现在在原型上定义。