Rx JS: switchMap внутри слияния не работает, чтобы сделать условный наблюдаемый возврат - PullRequest
0 голосов
/ 12 апреля 2020

Внутри слияния я хочу, чтобы первая наблюдаемая была условной между двумя разными, но кажется, что добавление switchMap внутри слияния не работает.

Я не понимаю, почему switchMap внутри merge никогда не срабатывает и обрабатывает только наблюдаемые.

switchMap(() => {
       return merge(
          switchMap(() => {
            if (condition) {
              return of(something);
            }
            return of(somethingelse);
          }),
         obs2$
        );
      })

1 Ответ

1 голос
/ 12 апреля 2020

Слияние принимает Observables в качестве аргументов, но SwitchMap не является функцией, которая создает Observable. SwitchMap - это конвейерный оператор, который идет внутри pipe ().

Один из способов решения этой проблемы:

switchMap(() => {
  let myVar;
  if (condition) {
    myVar = something;
  } else {
    myVar = somethingelse;
  }
  return merge(
    of(myVar), 
    obs2$
  );
})
...