在传入相同参数时DebounceTime Rxjs



我有多个组件使用此服务,我想在管道输入相同值时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 
}),
)

最新更新