【发布时间】:2021-03-05 11:44:45
【问题描述】:
我正在尝试将 combineLatest 与 BehaviourSubject.asObservable 一起使用,但出现此错误:
TypeError: You provided 'function () {
return this.ctaButtonSpinnerTriggered.asObservable();
}' where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.
private ctaButtonSpinnerTriggered: BehaviorSubject<
boolean
> = new BehaviorSubject(false);
public isCtaButtonSpinnerTriggered(): Observable<boolean> {
return this.ctaButtonSpinnerTriggered.asObservable();
}
public setCtaButtonSpinnerTriggered(isDisabled: boolean): void {
this.ctaButtonSpinnerTriggered.next(isDisabled);
}
public get showCtaSpinner(): Observable<boolean> {
return combineLatest([
this.ctaDisabled,
this.isCtaButtonSpinnerTriggered,
]).pipe(
map(
([ctaDisabled, isCtaButtonSpinnerTriggered]: [
boolean,
boolean
]) => {
console.log(
!ctaDisabled,
isCtaButtonSpinnerTriggered,
'ctaDisabled + isCtaButtonSpinnerTriggered'
);
return !ctaDisabled && isCtaButtonSpinnerTriggered;
}
)
);
}
有什么想法可以正确实现 combineLatest 和 BehaviourSubject 吗?
【问题讨论】:
标签: angular rxjs behaviorsubject rxjs-observables