Сброс лодаша после нажатия клавиши - PullRequest
0 голосов
/ 04 июня 2018

в моем приложении javascript я запускаю эту функцию при изменении входного значения.Я хочу отложить вызов ajax с помощью функции lodash debounce.Проблема в том, что функция работает только для первого нажатия клавиши.Например, я начал печатать и вызывать функцию ajax через 1 секунду после ввода первой буквы.Я хочу отложить вызов для каждого нажатия клавиши, но когда я набираю через 1 секунду, функция срабатывает каждый раз.Можете ли вы сказать мне, как это исправить?Благодарю.

<custom-select :on-search="onChange"></custom-select>

function onChange (text) {
   _.debounce(function () {
      // do ajax call
   }, 1000);
}

1 Ответ

0 голосов
/ 04 июня 2018

Вместо debounce новой функции для каждого изменения, вы должны использовать тот же «debouncer»:

const bounceIt = _.debounce(function () {
  console.log("pressed");
}, 1000);

document.getElementById("text").addEventListener("keydown", function() {
	bounceIt();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>
<input id="text" type="text"/>
...