при каждом нажатии на кнопку я хочу передать различное значение в функцию debounceTime () - PullRequest
1 голос
/ 19 сентября 2019

Я использую debounceTime () из Rxjs.Это означает, что он подпишется через миллисекунды, которые я передам на работу.Итак, я вызываю debounceTime () при каждом щелчке документа, давая разное значение времени.1 раз даю 1 мин.к этой функции.Нравится - debounceTime (1 * 60 * 1000).Это хорошо.2-й раз, когда я даю 2 мин.к этой функции.Нравится - debounceTime (2 * 60 * 1000).Он подписывается только за 1 минуту (он должен подписаться через 2 минуты).

Ниже приведен мой небольшой код в компоненте angular6.Впервые я вызвал эту функцию в ngOnInit () со значением 1 минута.

@HostListener('click', ['$event'])
    onClick($event) {
        this.timeoutMins = 2;
        this.updateTimer.next($event);
    }

this.clickOrKeyEvent = this.updateTimer.pipe(
            debounceTime(this.timeoutMins * 60 * 1000),
        )
            .subscribe(() => {
                console.log(this.timeoutMins);
            });

1 Ответ

0 голосов
/ 20 сентября 2019

Ваш updateTime типа Observable?Если это голая Наблюдаемая, вы создаете новую Наблюдаемую, подписавшись и, для этого, нажав вашу кнопку через 10 секунд, вы получите 2, зарегистрированный на консоли через 60 секунд (OnInit) и через 130 секунд (Click).

Вы можете посмотреть ReplaySubjects , если хотите, чтобы в фоновом режиме работал только один Observable.

Надеюсь, я вас правильно понял.Если это не помогло, предоставьте полный пример кода и объясните точное поведение, которое вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...