2013-09-23 12 views
6

मेरे पास कुछ पुरानी जावास्क्रिप्ट लाइब्रेरीज़ हैं जो jQuery promises का उपयोग फ़ंक्शन कॉल से रिटर्न ऑब्जेक्ट्स के रूप में करती हैं। अब मैं AngularJS का उपयोग कर रहा हूं जो $q service (Q library से प्रेरित) का उपयोग करता है। क्या किसी के पास इन दो अलग-अलग वादे कार्यान्वयन को संगत बनाने के लिए कुछ सामान्य जावास्क्रिप्ट कोड है, ताकि jQuery वादे का उपयोग किया जा सके जैसे कि $ q का वादा किया जाता है? या कुछ समान है?

+0

जवाब देने के लिए धन्यवाद। मैं यह जानता था, लेकिन यह हर जगह इसे लागू करने के लिए बोझिल है। नीचे दिया गया उत्तर मैं (और शायद अन्य) ढूंढ रहा था। –

उत्तर

21

तीसरे पक्ष के वादे को $q.when(thirdPartyPromise) के साथ $ q वादे में परिवर्तित करने के लिए लपेटा जा सकता है। जब thirdPartyPromise हल करता है, तो $ q वादा तदनुसार हल हो जाता है और $scope.$apply() कहा जाता है।

+0

Thanx! दस्तावेज़ों में से एक को याद किया। –

+2

मुझे खुशी है कि $ q ने क्यू से भी उठाया है। चाल यह है कि कुछ भी जो 'वादा लागू करता है। फिर (सीबी, ईबी)' वापसी मूल्य को अनदेखा कर, किसी अन्य प्रकार के वादे को लाया जा सकता है। इसे "अस्थिरता" कहा जाता है। –

+0

@ क्रिसकोवाल, यदि '$ q.when()' wrapper woks, तो संभावित रूप से दबाव '$ q (तृतीय पक्षी समझौता) का सरल रूप होगा? –