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:
// 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')
);