rxjs debounceTime на тему - PullRequest
       6

rxjs debounceTime на тему

0 голосов
/ 15 сентября 2018

Иметь такой код:

const hoverQueue$ = new Rx.Subject()
    .debounceTime(1000)
    .subscribe(() => {
        console.log('subject')
});

const callback = () => {
    hoverQueue$.next(true)
}

Что, похоже, не работает. Вместо того, чтобы мои события задерживались на 1 с и получали только последнее значение, все они проходят, как будто debounceTime не существует. такое же поведение происходит с задержкой, похоже, не работает. Кажется, работает как задумано на наблюдаемых. обратный вызов - это обратный вызов, вызванный другой библиотекой, которую я использую.

Не уверен, что я что-то пропустил или я делаю что-то, что не должно быть сделано, не могу найти много об этом в Интернете.

У

есть скрипка внизу с примером для демонстрации

Вот скрипка с rxjs 5.4.1, которую я запускаю https://jsfiddle.net/theya222/2nhu1ka7/

а вот и последняя версия rxjs https://jsfiddle.net/theya222/j1uLw80d/

спасибо

1 Ответ

0 голосов
/ 15 сентября 2018

hoverQueue$ является результатом выполнения subscribe в наблюдаемой. Следовательно, 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.

...