【发布时间】:2019-06-06 20:41:39
【问题描述】:
为什么我不能订阅 concat() 运算符的结果,即使它看起来与文档和示例中的相同 https://rxjs-dev.firebaseapp.com/api/index/function/concat
我已经尝试更改为 concatMap 或 concatAll 但我有更多问题,此解决方案是迄今为止我发现的最优雅的解决方案。
ngOnInit() {
const trendingRentals = this.rentalService.getRentals().pipe(delay(500));
const commonRentals = this.rentalService.getCommonRentalsTest().pipe(delay(1000));
const luxuryRentals = this.rentalService.getLuxuryRentalsTest().pipe(delay(1500));
const concatenation = concat( [trendingRentals, commonRentals, luxuryRentals]);
concatenation.subscribe(
//Print result
)
}
//All get request are equal but with a different endpoint
public getCommonRentalsTest(): Observable<any> {
return this.http.get('/api/v1/rentals/common');
}
加快的结果是按顺序获取所有租金,然后以相同的顺序将它们推送到结果数组。
【问题讨论】:
-
concat不接受数组,您应该单独传递参数。 stackblitz.com/edit/…
标签: javascript angular typescript asynchronous rxjs