我有一些旧的JavaScript库,使用jQuery promises作为函数调用的返回对象。现在我正在使用AngularJS,它使用$q service(受Q库启发)。
是否有任何通用的JavaScript代码可以使这两个不同的promise实现兼容,以便可以像使用$q promises一样使用jQuery promises?或者类似的东西?
第三方承诺可以使用$q.when(thirdPartyPromise)
进行包装,以转换为$q承诺。当thirdPartyPromise
解决时,$q承诺也相应地解决,并调用$scope.$apply()
。
promise.then(cb, eb)
的东西都可以被转换为另一种类型的 promise,忽略返回值。 这被称为“thenability”。 - Kris Kowal$q.when()
包装器可行,那么简单形式的强制转换$q(thirdPartyPromise)
也应该可行吧? - Beetroot-Beetroot