gpt4 book ai didi

angular - 将Observable 转换为 bool 值

转载 作者:行者123 更新时间:2023-12-03 17:50:22 26 4
gpt4 key购买 nike

由于多种原因,这不是this的副本。 1.我使用的是 Angular 7,而不是 Angular 2。2.我使用的是rxjs6,而不是rxjs5。学习这些较早的版本已无用,对我没有好处。 3.当此问题未提及Observable(boolean)时,我问的是Observable(boolean)概念

我创建了一个Observable值,希望从中得出true/false。这是我在nav.component.ts文件中的代码

export class NavComponent implements OnInit {
private $loggedin: Observable<boolean>;

constructor( private auth: AuthenticationService){}
ngOnInit() {
this.$loggedin = this.auth.$isLoggedinSource;
console.log('am i logged in ', this.$loggedin);
}

控制台输出为:
am i logged in Observable {_isScalar: false, source: BehaviorSubject}
source: BehaviorSubject {_isScalar: false, observers:
Array(0), closed: false, isStopped: false, hasError:
false, …}
_isScalar: false ...

如何从$ loggedin中获取 bool 值,真/假值?

最佳答案

您可以通过两种方式解包Observable的值。

  • 通过在模板中使用async管道:
    <p>Am I logged In: {{ $isLoggedinSource | async }}</p>


  • 通过subscribe编码到组件中的Observable:

  • import { Subscription } from 'rxjs';

    ...

    subscription: Subscription;

    ...

    this.subscription = this.$loggedin
    .subscribe(data => console.log('am i logged in ', data));

    ...

    ngOnDestroy() {
    this.subscription.unsubscribe();
    }

    使用哪一个?

    如果此 $loggedin Observable重复发生,并且您使用了方法2,则必须将其分配给 Subscription类型的属性,然后在 unsubscribe中对其进行调用 ngOnDestroy

    使用第一种方法,您实际上并不需要这样做。

    关于angular - 将Observable <boolean>转换为 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54236956/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com