Наблюдается при окончательном обратном вызове

Можно ли создать что-то вроде finally, но подписаться на него? Нравиться:

  • Observable1 (ПОСТАВИТЬ на API)
  • Observable2 (POST по API)
  • ObservableA
  • НаблюдаемыйB

Если условие X: Observable1.switchMap(return ObservableA).switchMap(ObservableB).subscribe() Если условие Y: Observable2.switchMap(return ObservableA).switchMap(ObservableB) .подписываться()

Есть ли способ сделать это, не повторяясь во второй части?


person Rafael De Almeida    schedule 10.03.2018    source источник


Ответы (1)


Наблюдаемые объекты не срабатывают до тех пор, пока не будут подписаны, поэтому вы можете просто сделать это:

const obs$ = condition ? Observable1 : Observable2;
obs$.switchMap(...)

Или, если вы предпочитаете одну беглую цепочку, вы также можете использовать

Observable.defer(() => condition ? Observable1 : Observable2)
 .switchMap(...) 
person Ingo Bürk    schedule 10.03.2018