27

In the following code:-

RxJS.Observable.of(1,2).first().subscribe((x) => console.log(x););

is it necessary to unsubscribe given the operator first()?

bhantol
  • 8,928
  • 5
  • 44
  • 76

3 Answers3

43

No. It unsubscribes automatically after calling first(). The current syntax is observable.pipe(first()).subscribe(func); for RxJS 6.

The documentation states:

If called with no arguments, first emits the first value of the source Observable, then completes.

Max
  • 619
  • 2
  • 7
  • 22
5

For the example provided, you dont need to unsubscribe, and neither you need to call first, as Observable.of(1) actually completes after emitting its first (and last) value.

c69
  • 18,226
  • 6
  • 49
  • 81
3

first() will complete after the first item is emitted from the observable.

Also subscribe() takes three arguments, the last one being the complete callback. Running the following code will output 1 followed by 'done'.

Rx.Observable.of(1)
  .subscribe(
  (x) => console.log(x),    // next
  (x) => console.error(x),  // error
  () => console.log('done') // done
)
Johan.C
  • 61
  • 5