अस्वीकरण: jQuery वादों अन्य पुस्तकालयों के साथ अच्छा नहीं खेलते हैं -
सभी पर। jQuery अपने आप पर अन्य तीसरे पक्ष के वादे को आत्मसात नहीं करेगा। कोणीय $ q दूसरी तरफ वादा करता है - होगा, इसलिए जब भी आपके पास विकल्प हो, तो jQuery वचन को एक कोणीय वादे में आत्मसात करें और इसके विपरीत नहीं। (यदि आप इस अस्वीकरण को देखते हैं और 3.0 को पहले से ही जारी कर दिया गया है, तो यह सभी परिवर्तन jQuery 3.0 में जारी हैं - कृपया एक टिप्पणी छोड़ दें)।
एक कोणीय वादा में एक jQuery वादा परिवर्तित:
var angularPromise = $q.when(jQueryPromise); // eg: $q.when($.get(...));
एक देशी या Bluebird वादा करने के लिए एक jQuery वादा परिवर्तित:
var promise = Promise.resolve(jQueryPromise); // eg: Promise.resolve($.get(..));
एक वादे/ए + शिकायत $ q कोणीय तरह वादा परिवर्तित वादा या ब्लूबर्ड वादा या jQuery वादे में मूल वादे:
function convert(p){
var d = $.Deferred();
p.then(function(val){
d.resolve(val);
}, function(err){
d.reject(err);
});
return d.promise();
}
var jqPromise = convert($http.get(...)); // example usage
// you might be tempted to think you can easily do:
var jqPromise = $.when($http.get(...));
// however - this will will fail inconsistently due to differences between
// jQuery and Angular promises
इसके अलावा लायक टिप्पण - कोणीय वादों का उपभोग कर सकते jQuery का वादा किया:
$http.get(...).then(function(id){
return $.get("http://..."+id); // will work, though pointless because $http.get
}).then(function(result){
// contains result of $.get call here
});
स्रोत
2014-07-07 13:13:01
क्यों? एक उदाहरण है? –
उदाहरण के लिए आप $ q.when (thirdPartyromromise) का उपयोग कर किसी भी तीसरे पक्ष के वादे को $ q/Q वादे में परिवर्तित कर सकते हैं। लेकिन उस पुस्तकालय को मेरे वादे का उपयोग करने के लिए होना चाहिए। मैं अपने क्लाइंट को क्यू या कोणीय का उपयोग करने के लिए मजबूर नहीं करना चाहता ताकि वह मेरा वादा पुन: उपयोग कर सके। अगर मैं इसे संगत वादे में परिवर्तित कर सकता हूं तो वह चाहता था कि इसका उपयोग करने में कम दर्द होगा। – phani
आपको कम से कम वादा लाइब्रेरी का उपयोग करने पर विचार करना चाहिए और jQuery के वादे नहीं, jQuery वादे त्रुटि प्रबंधन में स्वाभाविक रूप से समस्याग्रस्त हैं। कार्यान्वयन के बीच –