2016-05-11 13 views
18

angular2'deki tüm http api isteklerini çözmek için q.all gibi bir şey var mı? angular1 olarakangular2 gözlenebilirler için q.all

, böyle bir şey yapabilirsiniz: angular2 olarak

var promises = [api.getA(),api.getB()]; 
$q.all(promises).then(function(response){ 
    // response[0] --> A 
    // response[1] --> B 
}) 

http modülü

api.getA().subscribe(A => {A}) 
api.getB().subscribe(B => {B}) 

, gözlemlenebilir döndürür Ama ben birlikte A ve B çözmek istiyoruz, o zaman bir şey yapmak .

cevap

27

Sen Observable içe ki

Observable.forkJoin([observable1,observable2]) 
     .subscribe((response) => { 
      console.log(response[0], response[1]); 
     }); 

için .forkJoin operatörü gerekir;

import {Observable} from 'rxjs/Rx'; 
+1

$ q.all() çağrısının diğer varyantı için RXJS çözümünü biliyor musunuz? Daha zarif bir yaklaşım çünkü daha sonra vaatleri isimle değil, dizine göre de yapabilirsiniz. –

+1

@ ŁukaszBachman Bunu bir cevap olarak görmek isterim :-) – echonax