2013-09-23 4 views
6

jQuery promises을 함수 호출의 반환 개체로 사용하는 일부 이전 JavaScript 라이브러리가 있습니다. 나는 $q service (Q library에서 영감을 얻은)을 사용하는 AngularJS을 사용 중입니다. 누구나이 두 가지 서로 다른 약속 구현을 호환 가능하게 만들기 위해 일반 JavaScript 코드를 가지고 있지 않으므로 $ q가 약속 한대로 jQuery 약속을 사용할 수 있습니까? 아니면 비슷한 무엇입니까?

+0

응답 해 주셔서 감사합니다. 나는 이것을 알았지 만 모든 곳에서 적용하기가 번거롭다. 아래의 대답은 내가 (그리고 아마도 다른 사람들이) 찾고 있었던 것입니다. –

답변

21

제 3 자 약속은 $q.when(thirdPartyPromise)으로 포장하여 $ q 약속으로 변환 할 수 있습니다. thirdPartyPromise이 해결되면 $ q 약속이 그에 따라 해결되고 $scope.$apply()이 호출됩니다.

+0

고맙습니다! 문서에서 그 중 하나를 놓쳤습니다. –

+2

나는 $ Q를 Q에서 선택했기 때문에 기쁩니다. 트릭은'promise.then (cb, eb)'를 구현하는 모든 것이 반환 값을 무시하고 또 다른 유형의 약속에 던져 질 수 있다는 것입니다. 그것은 "궁리 성"이라고 불립니다. –

+0

@KrisKowal,'$ q.when() '래퍼가 깨지면 아마도'$ q (thirdPartyPromise)'의 간단한 형태가 될 것입니다. –

관련 문제