我似乎无法弄清楚如何组合两个可观察的数组。这是使用Angular 6,rxjs 6.3.2
示例代码:
var arrayOfUsers = this.httpCallToGetObservableArrayOfUsers();
var anotherArrayOfUsers = this.httpCallToGetADifferentArrayOfUsers();
//how do I combine these two Observable<User[]>?
预先感谢
答案 0 :(得分:5)
由于您的可观察对象是http调用,因此我认为它们在发出后就完成了。 您可以使用forkJoin组合它们:
var arrayOfUsers = this.httpCallToGetObservableArrayOfUsers();
var anotherArrayOfUsers = this.httpCallToGetADifferentArrayOfUsers();
const allUsersArray = forkJoin(arrayOfUsers, anotherArrayOfUsers).pipe(
map(([users, otherUsers]) => users.concat(otherUsers))
);
如果您的观测值未完成,请使用CombineLatest:
const allUsersArray = combineLatest(arrayOfUsers, anotherArrayOfUsers).pipe(
map(([users, otherUsers]) => users.concat(otherUsers))
);