Вызов запроса GET с параметрами из первого ответа HEAD - PullRequest
0 голосов
/ 01 сентября 2018

В моем приложении Angular мне нужно вызвать два HTTP-запроса. Первый запрос - HEAD, который возвращает важный параметр в ответе заголовка (общее количество записей). Второй запрос GET и возвращает все записи, когда заголовок HTTP содержит номер для всех записей из ответа заголовка.

Теперь у меня есть два метода getHeader () и getData (records: number).

this.appService.getHeader().subscribe(
  (response) => {
    const records = response.headers.get('X-Total');

    this.appService.getData(records).subscribe(
      (data) => {
        this.data = dataFromServer;
      }
    );

  }
);

Это работает довольно хорошо, но я хотел бы знать, существует ли более элегантное решение?

1 Ответ

0 голосов
/ 01 сентября 2018

Очевидно, будет проще, если вы измените бэкэнд, так что требуется только один запрос. Тем не менее, если это не вариант, вы можете использовать switchMap, вот так:

import { switchMap } from 'rxjs/operators';

//...

this.appService.getHeader().pipe(
    switchMap(resp => this.appService.getData(resp.headers.get('X-Total')))
).subscribe(data => {
    this.data = data;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...