Evet, bu onun $http
hizmet PromiseAPI etrafında inşa edilmiştir beri angularjs tarafından çok zarif ele alınır. then
yöntemi kullanarak kolayca $http
yöntemleri bir söz dönmek ve zincir vaat can için Temelde, çağırır. İşte bir örnek:
$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
});
Ayrıca hem sonradan işleme ve sonraki $http
işlevini birleştirebilir, hepsi sonuç ilgilenen kim olduğuna bağlı.
$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
});
Teşekkürler Pawel, ben kontrol edeceğim. Şu anda, $ q.all'ı kullandım ve istediğimi yapıyor gibi görünüyor. Ama bunu da deneyeceğim. – Ketan
@Ketan 'q.all' ve burada açıklanan çözüm 2 farklı şeydir. "q.all" harikadır, ancak yalnızca paralel talepler için çalışır, yani eğer onların emrini önemsemezseniz ve bir istek başka birinin sonuçlarına bağlı değildir. Sorunuzda, bir isteğin bitirilmesi gereken istekleri zincirleme sonrasında olduğunuzu anladım, sonuçları incelemek/işlemek ve daha sonra başka bir istek vermek istiyorsunuz. –
o paralel olarak onları çalıştırmak için Tamam oldu benim özel problemde çıkıyor ama benim asıl istediğim hepsini bitince bazı kod çalıştırmasına oldu. Ancak cevabınız yine de değerlidir çünkü eminim ki bu konuya daha geç ulaşacağım. Cevabını kabul edeceğim. – Ketan