q.all 对于 angular2 observables
q.all for angular2 observables
是否有类似 q.all 的东西来解决 angular2 中的所有 http api 请求?
在 angular1 中,我可以这样做:
var promises = [api.getA(),api.getB()];
$q.all(promises).then(function(response){
// response[0] --> A
// response[1] --> B
})
在angular2中,http模块returns Observable,
api.getA().subscribe(A => {A})
api.getB().subscribe(B => {B})
但是我想一起解决A和B,然后做点什么。
您将需要 .forkJoin
运算符
Observable.forkJoin([observable1,observable2])
.subscribe((response) => {
console.log(response[0], response[1]);
});
您可以导入 Observable
与;
import {Observable} from 'rxjs/Rx';
Angular < 6:
import {Observable} from 'rxjs/Observable';
...
return Observable.forkJoin(
this.http.get('someurl'),
this.http.get('someotherurl'));
Angular >= 6:
import {forkJoin} from 'rxjs';
...
return forkJoin(
this.http.get('someurl'),
this.http.get('someotherurl'));
是否有类似 q.all 的东西来解决 angular2 中的所有 http api 请求?
在 angular1 中,我可以这样做:
var promises = [api.getA(),api.getB()];
$q.all(promises).then(function(response){
// response[0] --> A
// response[1] --> B
})
在angular2中,http模块returns Observable,
api.getA().subscribe(A => {A})
api.getB().subscribe(B => {B})
但是我想一起解决A和B,然后做点什么。
您将需要 .forkJoin
运算符
Observable.forkJoin([observable1,observable2])
.subscribe((response) => {
console.log(response[0], response[1]);
});
您可以导入 Observable
与;
import {Observable} from 'rxjs/Rx';
Angular < 6:
import {Observable} from 'rxjs/Observable';
...
return Observable.forkJoin(
this.http.get('someurl'),
this.http.get('someotherurl'));
Angular >= 6:
import {forkJoin} from 'rxjs';
...
return forkJoin(
this.http.get('someurl'),
this.http.get('someotherurl'));