Seperti judulnya, Bagaimana saya bisa menjalankan fungsi waktu nyata dan fungsi debounce dalam fungsi panggilan balik yang sama seperti

input.addEventListener('keyup', function () {
  realtimeFn()
  _.debounce(debounceFn, 1000) // how to code here...
})

function realtimeFn () { console.log(1) }


function debounceFn () { console.log(2) }

Saya ingin log 1 setiap kali dan log 2 setelah semua keyup dan 1 detik.

1
quietcoder 8 Agustus 2017, 17:13

2 jawaban

Jawaban Terbaik

Debounce mengembalikan fungsi yang di-debounce, Anda harus menggunakan fungsi yang dikembalikan itu alih-alih memanggil debounce. Sampel kode ini harus melakukan hal itu.

var debounced = _.debounce(debounceFn, 1000) ;
input.addEventListener('keyup', function () {
  realtimeFn();
  debounced();
})

function realtimeFn () { console.log(1) }


function debounceFn () { console.log(2) }
3
Salketer 8 Agustus 2017, 14:18

Saya sarankan untuk menggunakan setInterval() dan setTimeout():

input.addEventListener('keyup', function() {
    setInterval("realtimeFn()", 1000);
setTimeout("debounceFn()", 1000);
});
-1
halfer 1 Mei 2018, 21:43