当前位置: 首页 > 面试题库 >

如何获取RxJS Subject或Observable的当前值?

尉迟京
2023-03-14
问题内容

我有一个Angular 2服务:

import {Storage} from './storage';
import {Injectable} from 'angular2/core';
import {Subject}    from 'rxjs/Subject';

@Injectable()
export class SessionStorage extends Storage {
  private _isLoggedInSource = new Subject<boolean>();
  isLoggedIn = this._isLoggedInSource.asObservable();
  constructor() {
    super('session');
  }
  setIsLoggedIn(value: boolean) {
    this.setItem('_isLoggedIn', value, () => {
      this._isLoggedInSource.next(value);
    });
  }
}

一切正常。但是我还有另一个不需要订阅的组件,它只需要在某个时间点获取isLoggedIn的当前值即可。我怎样才能做到这一点?


问题答案:

一个SubjectObservable没有的电流值。发出值时,将其传递给订户并Observable使用它完成。

如果要使用当前值,请使用BehaviorSubject专门用于该目的的值。BehaviorSubject保留最后发出的值,并立即将其发送给新订户。

它还具有一种getValue()获取当前值的方法。



 类似资料:
  • 问题内容: 假设我们有一个变量: 使用该方法可以在训练过程中更新此变量。 获取变量当前值的最佳方法是什么? 我知道我们可以使用这个: 但是我担心这会触发整个操作链。 在Theano,您可以做 我正在TensorFlow中寻找相同的东西。 问题答案: 通常,将仅评估计算所需的节点,而不会评估其他节点,因此,如果要检查变量的值,它应该相对便宜。 看看这个很棒的答案http://codingdict.c

  • 当前文档只讨论获取路由参数,而不是实际的路由段。 例如,如果我想找到当前路由的父级,怎么可能?

  • 我正在访问在woocommerce上显示我的产品(与woocommerce中的正常流程类似)。 在存档产品页面上。php我已经添加了侧边栏和我的商店拥有的所有产品类别(有或没有产品)。我使用了以下代码来执行此操作: 现在页面的左侧有上面的侧边栏,右侧有产品。在每个产品类别中,我都添加了一个带有html格式的小说明,我希望在用户单击该类别时显示该说明。根据woocommerce,当您进入特定类别时(

  • 问题内容: 有人知道MySQL中是否有这样的功能吗? 更新 这不会输出任何有效的信息: 或者也许MySQL本身不知道确切使用了什么,那很好,我们可以在这里介入,只要我能获得不像… 问题答案: 从手册(第9.6节): 可以按以下方式检索全局时区和特定于客户时区的当前值: 编辑如果MySQL设置为系统时区的从属,则以上内容将返回,没有帮助。由于您使用PHP,如果从MySQL的答案是,你可以接着问什么时

  • nuxt3如何在服务端获取当前域名,服务端无法使用location去获取 使用useRequestHeaders获取的空对象

  • 问题内容: 我想获取UTC的当前时间。我到目前为止所做的是(仅出于测试目的): 是我的当地时间,那很好 是我的本地时间+ 1,但应该是本地时间-1 … 我的本地时区是UTC + 1(根据调试输出和此处的列表:https : //www.joda.org/joda- time/timezones.html )… 如何正确地从一个时区转换为另一个时区(包括毫秒表示)? 编辑 我需要日期/毫秒…这不是正