Hi there! Are you looking for the official Deno documentation? Try docs.deno.com for all your Deno learning needs.

concatWith

Emits all of the values from the source observable, then, once it completes, subscribes to each observable source provided, one at a time, emitting all of their values, and not subscribing to the next one until it completes.

concat(a$, b$, c$) is the same as a$.pipe(concatWith(b$, c$)).

Example

Listen for one mouse click, then listen for all mouse moves.

import { fromEvent, map, take, concatWith } from 'rxjs';

const clicks$ = fromEvent(document, 'click');
const moves$ = fromEvent(document, 'mousemove');

clicks$.pipe(
  map(() => 'click'),
  take(1),
  concatWith(
    moves$.pipe(
      map(() => 'move')
    )
  )
)
.subscribe(x => console.log(x));

// 'click'
// 'move'
// 'move'
// 'move'
// ...
function concatWith<T, A extends readonly unknown[]>(...otherSources: [...ObservableInputTuple<A>]): OperatorFunction<T, T | A[number]>;
§
concatWith<T, A extends readonly unknown[]>(...otherSources: [...ObservableInputTuple<A>]): OperatorFunction<T, T | A[number]>
[src]

§Type Parameters

§
A extends readonly unknown[]
[src]

§Parameters

§
...otherSources: [...ObservableInputTuple<A>] optional
[src]

Other observable sources to subscribe to, in sequence, after the original source is complete.

§Return Type

§
OperatorFunction<T, T | A[number]>
[src]

A function that returns an Observable that concatenates subscriptions to the source and provided Observables subscribing to the next only once the current subscription completes.