#angular #rxjs
Вопрос:
Предполагая, что у нас есть следующий код:
observable$ = this.someObservable$.pipe(
switchMap(values => {
return forkJoin(values
.map(value => this.someService.getByName(value.name)));
}
} // Returns an Array
Из сервиса, который я получаю {foo: ‘yay’, bar: ‘yayay’}, но я хотел бы добавить значение.имя из » Некоторого наблюдаемого$», поэтому в конце оно выглядит так: {foo: «да», бар: «да», поисковый запрос: «Автомобиль»}.
Интерфейс уже выглядит так:
foo: string;
bar: string;
searchTerm: string;
Каков был бы способ достичь этого? Мне уже потребовалось много времени, чтобы разобраться в текущем коде (все еще много узнаю о наблюдаемых/RxJS)
Ответ №1:
Вы можете map
наблюдать, что производится службой:
observable$ = this.someObservable$.pipe(
switchMap(values => forkJoin(
values.map(value =>
this.someService.getByName(value.name).pipe(map(data => ({
...data,
searchTerm: value.name
})))
)
))
);
Комментарии:
1. Огромное спасибо. Это так просто и в то же время так сложно 🙂