Angular rxjs观察者通用类型需要1个参数

时间:2019-12-25 09:57:38

标签: angular rxjs observable angular8

在使用带有rxjs包中的Observables的Observers时遇到以下错误。

src / app / home / home.component.ts(25,57)中的错误:错误TS2314:“ Observer”的通用类型需要一种类型的自变量。

我正在尝试创建我的第一个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);
 });

您能建议什么可能的解决方案?

2 个答案:

答案 0 :(得分: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);
});

答案 1 :(得分:1)

正如评论者Observer界面中提到的@Eldar期望通用类型

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

将您的Observer界面更改为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);
 });