$q.race 和 Promise.race 有什么区别?
What is the difference between $q.race to Promise.race?
我正在使用 Angularjs 1.5.7 版和在 1.5.8 版中添加的 $q.race
功能。
我看到有函数 Promise.race
,我的问题是这些函数之间是否有任何区别。
如果有不同,我应该从这里复制函数:AngularJS: $q.race() in old angular versions
它的工作原理与 $q.race
?
相同
提前致谢,对不起我的英语!
核心区别在于 $q.race 将在后台调用 $rootScope.$apply() 以消化执行承诺回调后可能发生的任何更改。
Promise A+ 规范与此无关,因为 Promise.all、Promise.race 是在 ES6/ES2015 规范中定义的,而不是在 Promise A+ 规范
中定义的
JavaScript ES6规范介绍了你上面描述的方法,如Promise.race
、Promise.all
等。
区别基本上是 angular 有一个内置的 $q
服务,以便用承诺进行管理。
这将自动触发摘要周期,以更改可能与承诺返回的数据或所有相关操作相关的所有内容。
如果你被允许使用 ES6 规范,你可以直接使用 JavaScript 的所有内置 Promises,但是你必须手动触发 $digest 才能使所有更改发生。
这是在 angularjs 中使用 $q 或标准 Promises 的主要区别之一。
此外,angular中有很多与$q集成的相关方法,例如$http,对于您的测试,直接使用$q会更轻松。
所以我的建议是尽可能使用 $q 。
我正在使用 Angularjs 1.5.7 版和在 1.5.8 版中添加的 $q.race
功能。
我看到有函数 Promise.race
,我的问题是这些函数之间是否有任何区别。
如果有不同,我应该从这里复制函数:AngularJS: $q.race() in old angular versions
它的工作原理与 $q.race
?
提前致谢,对不起我的英语!
核心区别在于 $q.race 将在后台调用 $rootScope.$apply() 以消化执行承诺回调后可能发生的任何更改。 Promise A+ 规范与此无关,因为 Promise.all、Promise.race 是在 ES6/ES2015 规范中定义的,而不是在 Promise A+ 规范
中定义的JavaScript ES6规范介绍了你上面描述的方法,如Promise.race
、Promise.all
等。
区别基本上是 angular 有一个内置的 $q
服务,以便用承诺进行管理。
这将自动触发摘要周期,以更改可能与承诺返回的数据或所有相关操作相关的所有内容。
如果你被允许使用 ES6 规范,你可以直接使用 JavaScript 的所有内置 Promises,但是你必须手动触发 $digest 才能使所有更改发生。
这是在 angularjs 中使用 $q 或标准 Promises 的主要区别之一。
此外,angular中有很多与$q集成的相关方法,例如$http,对于您的测试,直接使用$q会更轻松。
所以我的建议是尽可能使用 $q 。