如何在Angular中取消订阅未初始化的订阅

时间:2019-01-28 13:22:55

标签: angular

我遇到以下错误:

错误错误:未捕获(承诺):TypeError:无法读取未定义的属性“取消订阅”

我没有在ngOnInit上进行订阅,这就是为什么出现此错误的原因,因为我持有订阅的属性尚未初始化,但是在这种情况下,正确的方法是什么。

这是我的代码:

img

1 个答案:

答案 0 :(得分:2)

在订阅可观察对象之前,可以将takeUntil()的{​​{1}}运算符与rxjs一起使用。

pipe()

使用 unsubscribeSignal: Subject<void> = new Subject(); ngOnInit() { this.subscription = this.observableToSubscribe .pipe( takeUntil(this.unsubscribeSignal.asObservable()), ) .subscribe(result => { //Do some fancy stuff here console.log(result ); }); } ngOnDestroy(){ this.unsubscribeSignal.next(); } 而不是手动取消订阅的另一个好处是,您可以使用单个takeUntil来一次取消订阅多个订阅。

您可以查看我的另一个答案here