【问题标题】:Angular rxjs Observer Generic Type required 1 argumentAngular rxjs Observer 通用类型需要 1 个参数
【发布时间】:2020-04-16 00:50:50
【问题描述】:

我在使用带有 rxjs 包中的 Observables 的观察者时遇到以下错误。

src/app/home/home.component.ts(25,57) 中的错误:错误 TS2314:通用类型“观察者”需要 1 个类型参数。

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

您能否提出建议,可能的解决方案是什么?

【问题讨论】:

标签: angular rxjs observable angular8


【解决方案1】:

正如@Eldar 在评论 Observer 接口中提到的需要泛型类型

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

将您的观察者界面更改为Observer&lt;string&gt;

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);
 });

【讨论】:

    【解决方案2】:
    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);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-09
      • 2020-11-19
      • 1970-01-01
      • 2018-10-22
      • 2017-06-05
      • 2016-11-03
      • 2017-10-23
      • 2022-12-19
      相关资源
      最近更新 更多