Angular: создайте один наблюдаемый список из другого и получите его - PullRequest
0 голосов
/ 22 мая 2019

Я хотел бы создать функцию, возвращающую наблюдаемое со списком, который я создал с несколькими наблюдаемыми. Я думаю, что я очень близок к решению, так как отладчик останавливается всего за один шаг до отображения списка. Вот мой код: ц

this.carService.getEveryCar().subscribe((response) => {
    this.cars = response; 
});

обслуживание:

getEveryCar(): Observable<any> {
    let cars = [];
    this.getCars()
      .subscribe(response => {
        cars = response.list;
        this.getOneMoreCar.subscribe(
          response =>{
              cars = response.list;
              return of(cars)
        })
      }
   return of(cars);
}

Когда я отлаживаю, я получаю автомобили, объявленные как пустые до конца, когда массив автомобилей заполнен, но затем мой файл ts перестает вызывать службу.

Что я могу сделать?

1 Ответ

0 голосов
/ 23 мая 2019

Вам не следует оформлять подписку в сервисе. Это лучший способ связать наблюдаемые.

import { of, concatMap } from "rxjs/operators";
...
getEveryCar(): Observable<any> {
    let cars = [];
    return this.getCars()
      .pipe(concatMap(response => {
          cars = response.list;
          return this.getOneMoreCar()
                     .pipe(concatMap(response => of([cars, response.list])));
      }));
}
...