endWith
signature: endWith(an: Values): Observable
endWith(an: Values): Observable
Emit given value(s) on completion.
:bulb: If you want to start with a value instead, check out startWith
!
:bulb: If you want to perform an action on completion, but do not want to emit a value, check out finalize
!
Examples
Example 1: Basic endWith example
( StackBlitz )
// RxJS v6+
import { endWith } from 'rxjs/operators';
import { of } from 'rxjs';
const source$ = of('Hello', 'Friend', 'Goodbye');
source$
// emit on completion
.pipe(endWith('Friend'))
// 'Hello', 'Friend', 'Goodbye', 'Friend'
.subscribe(console.log(val));
Example 2: endWith multiple values
( StackBlitz )
// RxJS v6+
import { endWith } from 'rxjs/operators';
import { of } from 'rxjs';
const source$ = of('Hello', 'Friend');
source$
// emit on completion
.pipe(endWith('Goodbye', 'Friend'))
// 'Hello', 'Friend', 'Goodbye', 'Friend'
.subscribe(console.log(val));
Example 3: Comparison to finalize
( StackBlitz )
// RxJS v6+
import { endWith, finalize } from 'rxjs/operators';
import { of } from 'rxjs';
const source$ = of('Hello', 'Friend');
source$
// emit on completion
.pipe(
endWith('Goodbye', 'Friend'),
// this function is invoked when unsubscribe methods are called
finalize(() => console.log('Finally'))
)
// 'Hello', 'Friend', 'Goodbye', 'Friend'
.subscribe(val => console.log(val));
// 'Finally'
Additional Resources
:newspaper: - Official docs
:file_folder: Source Code: https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/endWith.ts
Last updated
Was this helpful?