【发布时间】:2019-01-29 05:04:18
【问题描述】:
我收到以下错误:
ERROR 错误:未捕获(承诺中):TypeError:无法读取未定义的属性“取消订阅”
我的订阅不在 ngOnInit 上,这就是我收到此错误的原因,因为我持有订阅的属性尚未初始化,但在这种情况下“正确的方法”是什么。
这是我的代码:
【问题讨论】:
-
在退订前检查sub是否存在。使用 if 语句。
-
您取消订阅尚未初始化的对象。尝试在取消订阅之前检查 this.sub 是否已定义。
-
删除一个变量
isAlive = true;然后删除sub并使用 rxJs 中的 takeWhile:this.authService.login(this.login.form.value).takeWhile(() => this.isAlive).subscribe(...); in theonDestroy:this.isAlive = false;` -
将订阅分配给一个变量并检查它是否已定义。题外话:不要用图片来展示代码。
-
私人订阅:Subscription = new Subscription();
标签: angular