हां, यह AngularJS द्वारा बहुत सुंदर ढंग से संभाला जाता है क्योंकि इसकी $http
सेवा PromiseAPI के आसपास बनाई गई है। असल में, $http
विधियों को कॉल करने का वादा वापस आता है और आप then
विधि का उपयोग कर श्रृंखला आसानी से वादे कर सकते हैं। यहाँ एक उदाहरण है:
$http.get('http://host.com/first')
.then(function(result){
//post-process results and return
return myPostProcess1(result.data);
})
.then(function(resultOfPostProcessing){
return $http.get('http://host.com/second');
})
.then(function(result){
//post-process results of the second call and return
return myPostProcess2(result.data);
})
.then(function(result){
//do something where the last call finished
});
तुम भी रूप में अच्छी तरह पोस्ट-प्रोसेसिंग और अगले $http
समारोह जोड़ सकता है, यह सब जो परिणाम में रुचि रखता है पर निर्भर करता है।
$http.get('http://host.com/first')
.then(function(result){
//post-process results and return promise from the next call
myPostProcess1(result.data);
return $http.get('http://host.com/second');
})
.then(function(secondCallResult){
//do something where the second (and the last) call finished
});
स्रोत
2013-04-29 17:45:17
धन्यवाद Pawel, मैं इसे देख लूंगा। अभी, मैंने '$ q.all' का उपयोग किया और ऐसा लगता है कि मैं क्या चाहता हूं। लेकिन मैं भी इसे आजमाउंगा। – Ketan
@ केतन 'q.all' और यहां वर्णित समाधान 2 अलग-अलग चीजें हैं। 'q.all' बहुत अच्छा है लेकिन केवल समानांतर अनुरोधों के लिए काम करता है, यानी, यदि आप उनके आदेश की परवाह नहीं करते हैं और एक अनुरोध दूसरे के परिणामों पर निर्भर नहीं करता है। आपके प्रश्न से मैं समझ गया हूं कि आप अनुरोधों को चेन करने के बाद हैं, जहां एक अनुरोध को पूरा करने की आवश्यकता है, आप परिणामों का निरीक्षण/प्रक्रिया करना चाहते हैं और फिर केवल एक और अनुरोध जारी करना चाहते हैं। –
मेरी विशेष समस्या में बदल जाता है, उन्हें समानांतर में चलाने के लिए ठीक था, लेकिन वास्तव में जो कुछ मैं चाहता था वह कुछ कोड चलाने के लिए था जब उन सभी को किया गया था। हालांकि आपका उत्तर अभी भी मूल्यवान है क्योंकि मुझे यकीन है कि मैं इसे बाद में जल्द से जल्द चलाऊंगा। मैं आपका जवाब स्वीकार करूंगा। – Ketan