Требуется рефакторинг подписок на разные наблюдаемые?

У меня есть несколько подписок на различные наблюдаемые объекты, на которые я, наконец, не могу попасть из-за массива подписок, которые были отправлены всем из них.

dataSuplObs$: Observable<any>;
simulationObs$: Observable<any>;
requestSimObs$: Observable<any>;
metaObs$: Observable<any[]>;

subs: Subscriptions[] = [];

method1() {
  this.dataSuplObs$ = this.dataSuppSrv.createSupplementPaymentMethod();
  this.metaObs$ = this.metaSrv.getOriginSupplement();

  const subDataSupl$: Subscription = this.dataSuplObs$.subscribe(data => {
  /** */
  this.subs.push(subDataSupl$);
  });

  const subMeta: Subscription = this.metaObs$.subscribe();
  this.subs.push(subMeta);
}

method2() {
  this.simulationObs$ = this.simulateSuppSrv.simulatePaymentMethod();

  const subSimulation = this.simulationObs$.subscribe(res => {
  this.subs.push(subSimulation);
}

method3() {
  this.requestSimObs$ = this.simulateSuppSrv.requestPaymentMethod();

  const subRequestSim = this.simulationObs$.subscribe(res => {
  this.subs.push(subRequestSim);
}

ngOnDestroy() {
  this.subs.forEach(sb => sb.unsubscribe());
}

Нет ли способа сэкономить на строках кода, которые инстанцируют наблюдаемое свойство и константу, на которую подписана подписка?

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *