Мне нужно объединить два наблюдаемых одного и того же типа и вернуть тот же тип, наблюдаемый в функции Angular2.
Итак, все, что я хочу сделать, это:
из этого:
obs1.subscribe(obs => console.log(obs))
(where I get):
{
count: 10,
array: <someObservable[]>
}
и
obs2.subscribe(obs => console.log(obs))
(where I get):
{
count: 10,
array: <someObservable[]> (different objects)
}
в:
{
count: 10 (count always the same number),
array: <someObservable[]> (combined array from obs1 and obs2)
}
Какой самый простой способ добиться этого? (Может быть, это просто даже младшему angular разработчику, но у меня это быстро и я новичок ie в этой сфере). Спасибо за совет.
--- UPDATE ---
из этой части кода:
const obs2 = obs1.pipe(
switchMap(value => {
return this._loadMoreTextSearchSub.asObservable()
.pipe(pairwise(),
map(params => this.getPagingParameters(params[0], params[1])),
switchMap(request),
map(response => response.packages),
scan<SearchPackage[]>((all, current) => {
return [...all, ...current];
},
value.packages
));
}))
.subscribe(data => console.log('sec', data));
Я получаю массив объектов. Как я мог обернуть этот массив в объект и установить дополнительное свойство - «count»?
Current:
[{...}, {...}, {...}, {...}]
Desired:
{count: some_number, array: [{...}, {...}, {...}]}