6
Angular'de $ q kullanırken iç içe geçmiş sözlerin eşleştirilmesiyle ilgili bir sorunuz var. Aşağıdaki kod, tüm vaat zincirinin beklemesini sağlıyor mu? Anlamı, $ q.all bloğunda bekleyen vaatleri bekleyen hizmetlere yapılan çağrılar mı olacak?
var call1 = service1.get('/someUr').then(function(){
return service2.get('/someUrl2'); //returns promise
});
var call2 = service3.get('/someUr').then(function(){
return 'hello';
});
var call3 = service4.get('/someUr').then(function(){
return service3.get('/someUrl3');//returns promise
});
$q.all(call1,call2,call3).then(function(){
console.log('All asynch operations are now completed');
});
Temelde: o zaman tüm iç içe vaatler önce çalıştırır $ q.all arasında çözümlenir akım koduyla bir şans var mı? Yoksa özyinelemeli mi?
Hayır, sanmıyorum. '$ Q.all()' 'call1',' call2' ve 'call3'' 'sonra' '()' işlevini tetiklemeden önce birlikte çözmek için bekleyecektir, ancak iç içe çağrılan çağrıları 'call1' ve' call3' döndürdü Beklenmeyecek. – Brett
Bekleyeceği izlenimi altındaydım. –
Şu anda bunu test etmek için kullanışlı bir açısal elimde yok, ama yerel vaatlerle, kesinlikle beklemekte. http://jsfiddle.net/p4evLjm6/ –