Pu sh объект в массив в наблюдаемой подписке - PullRequest
2 голосов
/ 14 апреля 2020

У меня есть два запроса с одинаковым результатом объекта («Данные»). Я бы получил два ответа и поместил все в массив («Данные []»). пример:

В моем сервисе:

  getData1(): Observable<Data> {
    return this.http
      .get<Data>(`${url}/data`):

  }

  getData2(): Observable<Data> {
    return this.http
      .get<Data>(`${url}/data`):

  }

Как я могу получить результаты двух методов и поместить все в данные [] для моего компонента?

ОБНОВЛЕНИЕ РЕШЕНИЯ

сервис

  getData1(): Observable<Data> {
    return this.http
      .get<Data>(`${url}/data`):

  }

  getData2(): Observable<Data> {
    return this.http
      .get<Data>(`${url}/data`):

  }

 getDatas(): Observable<GetData[]> {
   return forkJoin([this.getData1(), this.getData2()]);
  }

компонент

 getDatas: GetData[];
 ngOnInit() {
    this.dataService.getDatas().subscribe(x =>  this.getDatas= x);
  }

Я могу сделать oop on * ngFor = "пусть данные данных"

это работа

1 Ответ

2 голосов
/ 14 апреля 2020

Используйте ForkJoin, как показано ниже:

 getData(): Observable<Data[]> {
   const req = [];
   req.push(this.http.get<Data>(url_1));
   req.push(this.http.get<Data>(url_2));
   return forkJoin(req);
 }

Это вернет ответ как array, где будет предоставлен ответ обоих URL

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