我试图从流中跳过项目直到n秒,然后获取流中传递的最后一项。这就是我到目前为止所做的:
const delayedState$ = state$.delay(1000);
state$.buffer(
delayedState$
).filter(
(buffer) => buffer && buffer.length > 0
).publishReplay(1).refCount().map(
(buffer) => buffer.slice(-1).pop()
).subscribe((state) => {
saveState({
buttonCount: state.buttonCount
});
})
但是这看起来很混乱,并且当流在非常短的连续中有很多变化时似乎不起作用。我基本上试图遵循这个: https://github.com/tayiorbeii/egghead.io_idiomatic_redux_course_notes/blob/master/03-Persisting_the_State_to_the_Local_Storage.md
我的约束;它 是n秒后的最后一项,不是第一项,然后等待n秒。
答案 0 :(得分:1)
在这个演示中,source
Observable发出10个值,它们之间有1秒的延迟。
忽略所有值,直到内部Observable延迟5s发出一个值,然后只将最后一个值传递给订阅者(最后一个值为9
,因为interval()
计算{{1}的值}}):
0