我最近使用 ng update
更新了我的angular版本,当运行 ng lint
时,出现了错误:create is deprecated: use new Observable() instead
this.data$ = Observable.create(t => {
t.next(this.model);
t.complete();
});
新的可观察对象的语法是什么?
我最近使用 ng update
更新了我的angular版本,当运行 ng lint
时,出现了错误:create is deprecated: use new Observable() instead
this.data$ = Observable.create(t => {
t.next(this.model);
t.complete();
});
this.data$ = new Observable((observer: Observer) => {
observer.next();
observer.complete();
});
this.data$ = new Observable<void>((observer) => {
observer.next();
observer.complete();
});
你可以将 void
替换为你的可观察对象应该发出的任何类型。观察者的 next
值类型将根据回调函数进行推断。
在2021年,它发生了变化。
new Observable((observer: Observer<object>) => {
observer.next(data);
});
代替
new Observable((observer: Observer) => {
observer.next();
observer.complete();
});
或者你可以只使用
this.data$ = of(this.model);
observableSubscription: Subscription;
创建自定义可观察对象
const observer = new Observable((observer: Observer) => {
observer.next();
observer.error();
observer.complete();
});
订阅自定义 Observable
this.observableSubscription = observer.subscribe((data:any) => {
console.log(data);
})
取消订阅
this.observableSubscription.unsubscribe();
ngOnInit() {
const customObservable = new Observable((observer: Observer<object>){
observer.next(this.modal);
observer.complete();
})
订阅它
this.customSubscription = customObservable.subscribe((data) => {
// logic goes here
})
}
稍后,在ngOnDestroy中取消订阅
ngOnDestroy() {
this.customSubscription.unsubscribe();
}
of()
。 - user10747134of()
,它只会发出值。然而,of()
不如创建一个 Observable 强大。在那里,你可以放置复杂的逻辑。 - Sergeyof
时,你正在生成.next
的值,但如果你创建一个observable,你可以对事件做出反应,然后将一些数据传递给订阅者,以及你可以计算这些订阅者的数量等。 - Sergey