[英]Get latest value of an Observable and a Behaviour Subject
我有一个可观察的和行为的主题。 我想获取它们的最新值,检查它们是否都为真并将结果分配给 observable。
可从 NgRx 商店中观察到 select 和 boolean :
this.i18nStateService.defaultMarketChangeTriggered()
BehaviourSubject 也是一个 boolean
this.cookieService.isCookieLayerConfirmed$
这是我的方法。
this.result$ = this.i18nStateService.defaultMarketChangeTriggered()
.pipe(
map(defaultMarketChangedTriggered => defaultMarketChangedTriggered && !this.cookieService.isCookieLayerConfirmed$)
);
我认为您需要一种组合方法。 尝试使用combineLatest
。
import { combineLatest } from 'rxjs';
this.result$ = combineLatest(this.i18nStateService.defaultMarketChangeTriggered(),
this.cookieService.isCookieLayerConfirmed$).pipe(
// pluck the combination of those two observables individually to these variables
map(([defaultMarketChangeTriggered, isCookieLayerConfirmed]) => defaultMarketChangeTriggered && isCookieLayerConfirmed),
);
有很多运算符可以组合或合并可观察结果,我认为 Zip 运算符应该是您正在寻找的。 它合并了两个或多个可观察结果二一 stream。
import {zip} from "rxjs/observable/zip";
zip(this.i18nStateService.defaultMarketChangeTriggered(), this.cookieService.isCookieLayerConfirmed$).subscribe(t=>{});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.