使jQuery Deferred/Promises和AngularJS $ q Deferred/Promises兼容

Maa*_*ter 6 jquery-deferred angularjs q

我有一些旧的JavaScript库,它们使用jQuery promises作为函数调用的返回对象.我现在正在使用AngularJS,它使用$ q服务(受Q库启发).有没有人有一些通用的JavaScript代码来使这两个不同的promise实现兼容,所以jQuery promises可以像$ q promises一样使用?或类似的东西?

Nik*_*los 21

可以将第三方承诺包装起来$q.when(thirdPartyPromise)转换为$ q承诺.当thirdPartyPromise结算时,$ q promise会相应地解析并被$scope.$apply()调用.

  • 我很高兴$ q从Q中挑选出来.诀窍是任何实现`promise.then(cb,eb)`的东西都可以转换为另一种类型的promise,忽略返回值.它被称为"可靠性". (2认同)