31

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
  • 9,368
  • 7
  • 44
  • 81

3 Answers3

46

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
  • 739
  • 2
  • 8
  • 23
6

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
  • 19,951
  • 7
  • 52
  • 82
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
  • 71
  • 6