RxJS operators execution order

Discussão em 'Angular' iniciado por C.OG, Julho 31, 2025.

  1. C.OG

    C.OG Guest

    Considering I have the following code:

    private readonly postAction$ = new Subject();

    postStream$ = this.postAction$.pipe(
    exhaustMap(() => {
    this.count ++;
    console.log('fired')
    return of('my other post');
    }),
    startWith(''),
    exhaustMap(()=> {
    this.count ++;
    console.log('fired first')
    return of('my post' + this.count);
    })
    )


    Which I subscribe to in my template using the async pipe.

    I wasn't expecting this to work, but the output to the console was:

    > fired first


    Until I call .next() on the postAction$ subject, the first console.log('fired') is never called.

    What's the execution context of RxJS operators? How do they work? I would have expected that the first exhaust map needed to emit a value, before the rest of the operators are ran. Couldn't find anything in the rxjs docs

    Demo on stackblitz

    Continue reading...

Compartilhe esta Página