Представьте, что я печатаю на клавиатуре, и я хочу вызвать функцию, когда пользователь перестает печатать на клавиатуре. Я не хочу вызывать функцию каждый раз, когда пользователь нажимает кнопку клавиатуры, потому что моя функция вычисляет sth, и мой браузер замораживается.
Это возможно в Angularjs, например.
Пользователь начинает печатать на клавиатуре, и если пользователь не нажимает кнопку на 2 секунды, моя функция будет вызвана?
$scope.$watchCollection('collection', function(items) {
setTimeout(function() {
showData(items);;
$scope.$apply();
}, 1500);
});
Я пробовал код выше, но эта функция будет вызываться каждый раз после 1500 мс.
Проверьте https://docs.angularjs.org/api/ng/directive/ngModelOptions, в частности, часть об отказе. Debounce приводит к тому, что функции, связанные с изменением модели, срабатывают после установленной задержки.