我有多个组件使用此服务,我想在管道输入相同值时debounceTime,但如果它是不同的值,则让它通过。在这段代码中,我想以某种方式检查是否在
之前使用了类型from(types).pipe(
debounceTime(1000),
map(([data, type]) => {
// mapping logic
}),
)
它非常类似于这个问题https://github.com/lodash/lodash/issues/2403,我试图理解它,但我希望使用RXJS代码仍然
感谢一种可能的解决方案是使用pairwise
运算符发出先前和当前的值,然后使用debounce
运算符比较这些值并相应地剥离:
from(types).pipe(
pairwise(),
debounce(([prev, cur]) => (prev === cur)
? timer(1000)
: EMPTY
),
map(([, cur]) => cur), // No further need for prev value
map(([data, type]) => {
// mapping logic
}),
)