От lodash debounce до угловых 6 реактивных - PullRequest
0 голосов
/ 26 февраля 2019

У меня странный вопрос, и я извиняюсь, если это дублирование какого-либо ответа (однако я все еще не могу найти решение для моей проблемы).

Дело в том, что я переделываю старое приложение Angular JS в Angular6 приложениеИ у меня есть функция восстановления в старом приложении:

var debouncing = _.debounce(changeValue, 10000);

function changeValue() {
    // some increment stuff for example
}

debouncing();

Теперь мне нужно переписать ее, чтобы она работала без lodash.Сначала я хотел использовать setTimeout, но потом нашел debounceTime .Но это может быть применено только для предметов.Но моя changeValue - простая функция.

Как я могу сделать debounce, избегая использования lodash в терминах Angular 6?

1 Ответ

0 голосов
/ 27 февраля 2019

Сначала давайте преобразуем вашу функцию в наблюдаемую:

const changeValue$ = defer(() => of(changeValue()));

Затем давайте применим debounceTime:

changeValue$.pipe(debounceTime(1000)).subscribe(...);
...