У меня есть такая наблюдаемая:
const original = Observable.of({
a: this.http.get('https://jsonplaceholder.typicode.com/todos/11'),
b: this.http.get('https://jsonplaceholder.typicode.com/todos/22'),
c: this.http.get('https://jsonplaceholder.typicode.com/todos/33')
});
Мне нужно разрешить внутренние наблюдаемые и получить что-то вроде этого в обработчике подписки:
{
a: ResponseFromServer,
b: ResponseFromServer,
c: ResponseFromServer,
}
Как мне подойти к этомупроблема?
Спасибо.
РЕДАКТИРОВАТЬ: Я понял это, прочитайте ниже.
Кажется, что не многие люди знают, что * операторы карты раньше имели что-то под названиемresultSelector
в качестве второго аргумента.Теперь в rxjs v6 вы можете сделать то же самое с inner map
, позвольте мне показать вам.
const original = Observable.of({
a: this.http.get('https://jsonplaceholder.typicode.com/todos/11'),
b: this.http.get('https://jsonplaceholder.typicode.com/todos/22'),
c: this.http.get('https://jsonplaceholder.typicode.com/todos/33')
});
const transformed = original.pipe(
mergeMap(sourceValue =>
forkJoin(_.values(sourceValue)).pipe(map(resolvedHttpRequests => {
// here you have access to sourceValue as well as resolvedHttpRequests so you can do manual join to match the data.
}))
)
)