Observable

A representation of any set of values over any amount of time. This is the most basic building block of RxJS.

class Observable<T> implements Subscribable {
  static create: Function
  static if: typeof iif
  static throw: typeof throwError
  constructor(subscribe?: (this: Observable<T>, subscriber: Subscriber<T>) => TeardownLogic)
  _isScalar: boolean
  source: Observable<any>
  operator: Operator<any, T>
  lift<R>(operator: Operator<T, R>): Observable<R>
  subscribe(observerOrNext?: NextObserver<T> | ErrorObserver<T> | CompletionObserver<T> | ((value: T) => void), error?: (error: any) => void, complete?: () => void): Subscription
  _trySubscribe(sink: Subscriber<T>): TeardownLogic
  forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise<void>
  pipe(...operations: OperatorFunction<any, any>[]): Observable<any>
  toPromise(promiseCtor?: PromiseConstructorLike): Promise<T>
}

We can also create our own observables. We can create our observable using the following snippet code:

For a better understanding about the following example we use a promise to make it work as expected. Please click here for more info: https://coding-seed.gitbook.io/full-stack-developer-guide/javascript/promises

// Custom observable
const https$ = new Observable((observer: Observer<any>) => {
    fetch('/api/courses')
        .then(response => {
            return response.json();
        })
        .then(body => {
            observer.next(body);
            observer.complete();
        })
        .catch(err => {
            observer.error(err);
        });
});

// Observable subscription
https$.subscribe(
    courses => console.log(courses),
    noop,
    () => console.log('Completed')
);

Last updated