typescript - 获取 Angular 服务中 Subject.asObservable() 的当前值

标签 typescript angular rxjs angular2-services subject

我想在 Angular2 服务中编写一个简单的切换。

因此我需要我观察到的 Subject 的当前值(见下文)。

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

@Injectable()

export class SettingsService {

  private _panelOpened = new Subject<boolean>();
  panelOpened$ = this._panelOpened.asObservable();

  togglePanel() {
    this._panelOpened.next(!this.panelOpened$);
  }

}

如何从 _panelOpened/panelOpened$ 获取当前值?

谢谢。

最佳答案

您似乎在寻找 BehaviorSubject

private _panelOpened = new BehaviorSubject<boolean>(false);

如果您订阅,您将获得最后一个值作为第一个事件。

togglePanel() {
  this.currentValue = !this.currentValue;
  this._panelOpened.next(this.currentValue);
}

关于typescript - 获取 Angular 服务中 Subject.asObservable() 的当前值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36013957/

相关文章:

javascript - <undefined> html 标签在 angular2 beta 0 应用程序中生成

javascript - 变量无法从订阅方法分配

javascript - 如何在 rxjs 中冒泡滚动事件

angular - 从 HttpInterceptor 中的 catchError 返回可观察到的捕获错误会导致错误循环

typescript - 我可以在编译时通过装饰器向类添加属性吗?

javascript - 在 JSON 中添加新元素

Angular 10 - 注册自定义语言环境

Angular/RxJS - 有一个 RxJS 管道用于启动流吗?

javascript - 从后端动态接收未知文件类型的图像

angular - 从 Angular 中的 .subscribe 获取订阅数据