【发布时间】:2021-06-04 19:55:33
【问题描述】:
我正在尝试将多个可观察对象组合成一个布尔可观察对象。
目前我正在使用扫描,当我需要它每次都使用 true 时,它正在使用之前为累加器发出的值运行。我不确定如何实现这一点。
this.partnershipFundInvalid$ = merge(
this.partnershipFundId$.pipe(map(id => id === null)),
this.partnershipsFileUploader.dataImportState$.pipe(map(state => state.file !== null)),
).pipe(
scan((acc, val) => {
return acc && val === true;
}, true),
);
【问题讨论】:
-
听起来你不需要
scan。你能用map(val => val === true)吗? -
@SteveHolgado 地图在所有流关闭之前不会发出
-
您正在使用
merge,因此通过map的管道应在每次排放时运行... -
您需要 takeLast(10) 才能按照您描述的方式使用地图。你没有帮助
-
这个问题显然需要更多关于预期输出和实际输出的细节,所以投票结束。