在使用带有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);
});
您能建议什么可能的解决方案?
答案 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);
});