Выделите фрагмент кода следующим образом:
const hoverQueue$ = new Rx.Subject()
.debounceTime(1000)
.subscribe(() => {
console.log('subject')
});
const callback = () => {
hoverQueue$.next(true)
}
Кажется, что это не работает. Вместо того, чтобы мои события задерживались на 1 секунду и получая только последнее испущенное значение, все они проходят, как будто debounceTime не существует. такое же поведение происходит с задержкой, похоже, не работает. Кажется, он работает как можно больше на наблюдаемых. callback - это обратный вызов, вызванный другой библиотекой, которую я использую.
Не уверен, что я что-то пропустил, или если я делаю то, что не должно быть сделано, не можете найти много об этом в Интернете.
Ниже приведена скрипка с примером для демонстрации
вот скрипка с rxjs 5.4.1, что и работает https://jsfiddle.net/theya222/2nhu1ka7/
и здесь приведена последняя версия rxjs https://jsfiddle.net/theya222/j1uLw80d/
Спасибо
hoverQueue$
является результатом выполнения subscribe
на Observable. Следовательно, hoverQueue$
является Subcription
не наблюдаемой, а Subscription
не имеет next
метода.
Что вам нужно сделать, так это
const subj = new Rx.Subject();
const hoverQueue$ = subj.debounceTime(1000);
hoverQueue$.subscribe(() => {
console.log('subject')
});
const callback = () => {
subj.next(true)
}
если обратный вызов является
обратный вызов, вызванный другой библиотекой
взгляните на метод/функцию bindCallback
определенную с помощью Observable.
debounceTime
должен быть немного дальше вниз, иначеhoverQueue$
являетсяObservable
а неSubject
. да здравствует машинопись