Angular, как делать последовательные, зависимые HTTP-запросы на получение - PullRequest
0 голосов
/ 17 июня 2020

Я хотел бы выполнить один HTTP-запрос на получение после завершения другого. URL-адрес конечной точки для второго запроса должен зависеть от первого запроса.

Я пробовал вложить запросы с чем-то вроде этого в Angular:

this.http.get(endpoint1).subscribe(
   success => {
      this.http.get(endpoint2 + success).subscribe(
         anotherSuccess => console.log('hello stackoverflow!')
      );
   }
);

Первый вопрос здесь о stackoverflow, дайте мне знать, если я должен предоставить более подробную информацию.

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Вероятно, вам следует попробовать использовать ngrx (redux) для запуска второго запроса в зависимости от действия success.

Поток должен быть примерно таким: отправить действие из компонента -> вызвать первый запрос -> запрос запускает успешное действие -> успешный эффект запускает второй запрос с полезной нагрузкой из предыдущего запроса.

enter image description here

Прочтите документацию здесь

0 голосов
/ 17 июня 2020

здесь вы можете узнать, как это сделать , у вас есть различные варианты:

с подпиской:

this.http.get('/api/people/1').subscribe(character => {
  this.http.get(character.homeworld).subscribe(homeworld => {
    character.homeworld = homeworld;
    this.loadedCharacter = character;
  });
});

с mergeMap

this.homeworld = this.http
  .get('/api/people/1')
  .pipe(mergeMap(character => this.http.get(character.homeworld)));

Существует версия с forkJoin, но она не является явной по сравнению с subscribe и mergeMap.

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