【发布时间】:2018-01-18 23:35:08
【问题描述】:
您好,我正在尝试创建可观察(OBS)和主题(SUB)的函数,用于存储来自 OBS 的最后一项,而 SUB 具有 F 值, 当 SUN 变为 T 时发射它(并且只发射它)
OBS ---a----b----c----d----e----f----g----h-----
SUB ------F----------T------------F-------T-----
OUT -----------------c--------------------h-----
我试图解决这个问题
OBS.window(SUB)
.withLatestFrom(SUB)
.switchMap(([window, status]) => {
if(status === F) {
return window.combineLatest(SUB, (cmd, status) => {
if(status === T) {
return null;
};
return cmd;
}).last((e) => {
return !!e;
})
}
return Observable.empty<Command>();
}).filter((cmd) => {
return !!cmd;
})
但它不起作用
【问题讨论】:
-
如果
SUB连续发出两个Ts,当SUB是F时,结果observable 是否仍会产生最后收到的值? -
@SergeyKaravev,不,但可以用 distinctUntilChanged 修复
标签: javascript typescript rxjs rxjs5