hola, estoy trabajando con lodash... todo funciona muy bien... pero tengo un problema, quiero que debouce no funcione cuando se presiona la tecla enter... y esta es mi tecla lodash...
search_products:_.debounce(function(event) { // my code here // how can i let debounce work with all keys but not with enter key },5),quiero que el retraso de 5 ml no funcione con enter también si hay algún otro método como debouce o cualquier otra biblioteca ¿alguien puede ayudarme aquí es posible gracias
Puede extraer la función rebotada y solo llamarla cuando se presiona algo que no sea la tecla Intro.
{ search_products: function (event) { if (event.code !== 'Enter') { debounced(event); } } } const debounced = _.debounce(function(event) { // ... }, 5);Puede usar el método flush() incluido con lodash debounce
flush invocará inmediatamente todas las invocaciones de funciones retrasadas.
Escriba a continuación y habrá un retraso de 1 segundo, pero presione enter y registrará el resultado de inmediato.
const debounced = _.debounce(value => { console.log(value); }, 1000); const handler = event => { if (event.key === 'Enter') return debounced.flush(); debounced(event.target.value); } document.querySelector('input').addEventListener('keyup', handler); <script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <input type="text" placeholder="type something">