Как можно использовать forkJoin как concat? - PullRequest
0 голосов
/ 09 июля 2020

У меня есть два наблюдаемых, observableA и observableB.

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

Я пробовал это, но в данном случае он подписывается на observableA и observableB одновременно:

forkJoin(observableA, observableB).subscribe(([resultA, resultB])=>{
    // ...
})

Работает как положено, если так:

observableA.subscribe(resultA => {
    observableB.subscribe(resultB => {
        // ...
    })
})

1 Ответ

0 голосов
/ 09 июля 2020

То, что вы ищете, вероятно, mergeMap , switchMap или ConcatMap .

 observable1$.pipe(
        mergeMap(value=>  observable2$.pipe( 
                mergeMap(value=> observable3$.pipe(
                       map(c=> {return c})))
        ))).subscribe(value=>console.log)
      }

Здесь сначала выполняется наблюдаемое 1, затем 2 & 3. Надеюсь, это вам поможет. Он также подходит для вашего варианта использования.

...