Me enfrento al siguiente error al usar Observadores con Observables del paquete rxjs.

ERROR en src / app / home / home.component.ts (25,57): error TS2314: El tipo genérico 'Observador' requiere 1 argumento (s) de tipo.

Estoy tratando de crear mi primera 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);
 });

¿Puedes sugerir, cuál podría ser la posible solución?

2
Gourav Bansal 25 dic. 2019 a las 12:57

2 respuestas

La mejor respuesta

Como @Eldar mencionó en el comentario, la interfaz del observador espera un tipo genérico

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

Cambie su interfaz de observador a 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);
 });
1
Chellappan வ 25 dic. 2019 a las 10:10
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);
});
1
GaurangDhorda 25 dic. 2019 a las 10:10