switchMap для обработки списка наблюдаемых в Angular - PullRequest
0 голосов
/ 07 декабря 2018

Я работаю с angular, и у меня есть служба с именем nameservice.ts, как показано ниже:

getIds():Observable<Ids> {
return this.http.post(this.url,'').pipe(map(({ Ids }:any) => Ids.map(item=>({Id:item.Id})))) as Observable<Ids>;
}
getNames(data: Ids):Observable<any[]> {
    return this.http
        .post(url,data)
        .pipe(map(({ Names}: any) => Names.map(item => ({id: item.ID, name: item.name }))));
        }

В компоненте tablecomp.ts я вызываю getIds (), а затем для каждого возвращенного идентификатора я вызываюgetNames.

getallNames(): any {
           this.nameservice.getIds().pipe(
                    switchMap((ids: Ids) => this.nameservice.getNames(ids))
            ).subscribe((response) => {
                    console.log(response)
            })
  }

Что я здесь не так делаю?Браузер говорит, что идентификаторы в switchMap () не определены.

1 Ответ

0 голосов
/ 07 декабря 2018

Добавьте сигнал и посмотрите, что происходит через канал.

getallNames(): any {
           this.nameservice.getIds().pipe(
                    tap(ids => { console.log(ids); }),
                    switchMap((ids: Ids) => this.nameservice.getNames(ids))
            ).subscribe((response) => {
                    console.log(response)
            })
  }

Скажет вам, возвращен ли вызов getIds неопределенным или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...