3

I am facing following error while using Observers with Observables from rxjs package.

ERROR in src/app/home/home.component.ts(25,57): error TS2314: Generic type 'Observer' requires 1 type argument(s).

I am trying to create my first Observable

const myObservable = Observable.create((observer: Observer) => {
setTimeout(() =>{observer.next('first package');},2000);
setTimeout(() =>{observer.next('second package');},4000);
setTimeout(() =>{observer.next('this does not work');},5000);
 });

Can you suggest, what could be the possible solution ?

Gourav Bansal
  • 73
  • 1
  • 7

2 Answers2

2

As @Eldar mentioned in the comment Observer interface expects generic type

interface Observer<T> {
  closed?: boolean;
  next: (value: T) => void;
  error: (err: any) => void;
  complete: () => void;
}

Change your Observer interface to Observer<string>

const myObservable = Observable.create((observer: Observer<string>) => {
   setTimeout(() =>{observer.next('first package');},2000);
   setTimeout(() =>{observer.next('second package');},4000);
   setTimeout(() =>{observer.next('this does not work');},5000);
 });
Chellappan வ
  • 23,645
  • 3
  • 29
  • 60
1
const myObservable = Observable.create((observer: Observer<string>) => {
       setTimeout(() =>{observer.next('first package');},2000);
       setTimeout(() =>{observer.next('second package');},4000);
       setTimeout(() =>{observer.next('this does not work');},5000);
});
Developer
  • 3,309
  • 2
  • 19
  • 23