角度rxjs订阅[重复]

Posted

技术标签:

【中文标题】角度rxjs订阅[重复]【英文标题】:angular rxjs subscriptions [duplicate] 【发布时间】:2021-10-17 18:59:06 【问题描述】:

我在 Angular 中这样声明订阅:

counterSubscription: Subscription

它给了我这个错误:

属性“counterSubscription”没有初始化器,也没有在构造函数中明确赋值。

请问Subscription 的初始值是多少?

【问题讨论】:

undefined?还是null 最后加一个分号。它应该给出一个错误。 counterSubscription!: Subscription; 你可以使用它并在 ngOnInit() 中初始化订阅。我建议直接使用counterSubscription = new Subscription();,而不是在 ngOnInit() 中初始化它。这可以减少您的代码。 【参考方案1】:

如果您在 Angular 生命周期挂钩中初始化订阅,例如 ngOnInit,您可以使用 Definite Assignment Assertion Operator ! 通知 TypeScript 该变量将被初始化。

counterSubscription!: Subscription;

【讨论】:

【参考方案2】:

您还可以将strictPropertyInitialization: false 规则添加到您的tsconfig.json 以禁用此行为。

【讨论】:

以上是关于角度rxjs订阅[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Angular 7 rxjs BehaviorSubject 发出重复值

差异Rxjs和.pipe [重复]

没有 ngOnDestroy,角度取消订阅不起作用

RxJs 在错误时调用 observable 并重复步骤

如何取消订阅角度组件中的多个可观察对象?

打字稿错误:模块'“.../node_modules/rxjs/Rx”'没有导出的成员'SubscriptionLike' [重复]