Прием js. Сопоставьте каждый объект Observable используя http-вызов - PullRequest
1 голос
/ 07 августа 2020

Допустим, у меня есть конечная точка, возвращающая Foo[]. Вот самый простой Foo класс:

class Foo{
booId: number;
someProperty: string;
}

И что я хочу сделать, это вызвать другой запрос Http для каждого Foo объекта, чтобы получить Boo объект с booId, затем объединить эти два объекты в один и возвращают объект, который выглядит так:

class FooWithBoo{
boo: Boo;
someProperty: string;
}

Я знаю, что есть много Rxjs operators, которые я могу использовать, но их слишком много, и я не знаю, какие из них должны я использую. Есть идеи?

1 Ответ

1 голос
/ 07 августа 2020

Будет написано так:

http.get(/*url to get Foo[]*/)
 .pipe(
   mergeMap(fooArray => from(fooArray)), //flatMap the returned array
   concatMap(foo => http.get(/*url to get Boo*/ + foo.booId))
 )
 .subscribe()
 
...