javascript - 如果只有一个值,则 BehaviourSubject 会多次命中
问题描述
我在共享服务中使用了 behaviorSubject 以在单击按钮时获取当前值。它按预期工作,但有时在 behaviorsubject 的订阅块内的 api 调用会多次命中。
会是什么问题?
解决方案
可能有以下任何原因:
- 当您在多次执行的代码块中订阅 BehaviorSubject 时,就会发生这种情况。例如,如果您订阅了多次执行的角度组件的 ngAfterViewChecked 生命周期钩子。
- 您从未取消订阅,但每次应用加载组件时,订阅您的行为主题。
- BehaviorSubject 的订阅者总是至少执行一次,因为 BehaviorSubject 在创建时需要一个默认参数,并且至少发出一次传递的默认参数,如果您在 BehaviorSubject 实例上仅调用一次 .next() 方法,订阅者将执行两次。第一次在创建 BehaviorSubject 实例时传递默认值,第二次通过在 BehaviorSubject 实例上调用 .next 方法传递的值。
我回答你的问题了吗?
如果没有,请提供代码片段,以便我们更好地理解问题。
推荐阅读
- android - 有限功能设备的Android构建
- xslt-2.0 - 在使用 XSLT 对数据进行分组和转置方面需要帮助
- angular - 类型“new () => T”上不存在属性“parse”
- javascript - 如何让我的所有图表显示在我的 html 页面上?
- sql - 在本地 SQL 文件上运行 SQL 查询
- c# - How to get the encoding of a file in a repository git via C#?
- spring-statemachine - Spring Statemachine 中是否有转换评估顺序?
- mysql - 构建 MySQL 查询背后的逻辑
- visual-studio - Visual Studio 不断向项目名称添加 _1 导致构建崩溃
- javascript - 如何在不使用 raw() 方法的情况下使用绑定?