【问题标题】:Make jQuery Deferred / Promises and AngularJS $q Deferred / Promises compatible使 jQuery Deferred / Promises 和 AngularJS $q Deferred / Promises 兼容
【发布时间】:2013-09-28 02:12:47
【问题描述】:

我有一些旧的 JavaScript 库使用 jQuery promises 作为函数调用的返回对象。我现在使用AngularJS,它使用$q service(灵感来自Q library)。 有没有人有一些通用的 JavaScript 代码来使这两种不同的 Promise 实现兼容,以便可以像使用 $q 承诺一样使用 jQuery Promise?还是类似的?

【问题讨论】:

  • 感谢您的回复。我知道这个,但是到处都应用它很麻烦。下面的答案更多的是我(可能还有其他人)正在寻找的。​​span>

标签: angularjs jquery-deferred q


【解决方案1】:

第三方promise可以用$q.when(thirdPartyPromise)包裹,转换成$q promise。当thirdPartyPromise 解析时,$q 承诺相应地解析并调用$scope.$apply()。

【讨论】:

  • 我很高兴 $q 也从 Q 那里得到了这个。诀窍是任何实现promise.then(cb, eb) 的东西都可以转换为另一种类型的promise,而忽略返回值。这就是所谓的“当时的能力”。
  • @KrisKowal,如果 $q.when() 包装器正常工作,那么简单的强制形式 $q(thirdPartyPromise) 大概也是如此?
  • @KrisKowal 我希望 Angular 采用了整个 Q 库:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-12
  • 1970-01-01
  • 2015-12-05
  • 2016-02-22
  • 2012-10-29
  • 1970-01-01
  • 2012-11-03
相关资源
最近更新 更多