Jor*_*ola 10 observable rxjs typescript angular
我正在使用类型化响应进行2次API请求调用,将它们组合成一个Observable.forkJoin,我希望将两个结果都放在不同的类型变量中.
var observableOrganization: Observable<Organization> = this.getOrganizationDetails();
var observablePromotion: Observable<Promotion[]> = this.getPromotions();
Observable.forkJoin([ observableOrganization, observablePromotion])
.subscribe(
response => {
organization: Organization = response[0];
promotions: Promotion[] = response[1];
},
error => {
// ...
}
);
Run Code Online (Sandbox Code Playgroud)
如何在单个订阅响应中获得键入的结果?我希望它有所帮助,谢谢你!
ale*_*nko 15
使用es6解构也可以添加类型,如果他们不自动分配
Observable.forkJoin([ observableOrganization, observablePromotion])
.subscribe([org, prom]: [Organization, Promotion[]]) => {
organization:Organization = org;
promotions: Promotions[] = prom
},
error => {
//error here
});
Run Code Online (Sandbox Code Playgroud)
forkJoin当请求显式声明为ObservalbleInput.
我个人更喜欢这种语法,使用破坏性语言功能:
const requests: [ObservableInput<Organization>, ObservableInput<Promotion[]>] = [observableOrganization, observablePromotion];
Observable.forkJoin(requests)
.subscribe(
([organization, promotions]: [Organization, Promotion[]]) => {
// use organization and promotions here
},
error => {
// ...
}
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5437 次 |
| 最近记录: |