clearTimeout ne fonctionne pas dans le script JavaScript à complétion automatique

J’utilise le code suivant dans le cadre d’un script de saisie semi-automatique pour éviter de bash le serveur à chaque frappe:

var that = this; textInput.bind("keyup", function() { clearTimeout(that.timer); that.timer = setTimeout (that.doStuff(), 2000); }); 

Malheureusement, cela n’efface pas les anciens. Ils exécutent toujours tous.

Est-ce que quelqu’un sait ce que je manque?

Merci!

Vous voulez probablement utiliser:

 that.timer = setTimeout (that.doStuff, 2000); 

au lieu de:

 that.timer = setTimeout (that.doStuff(), 2000); 

Sinon, doStuff sera appelé immédiatement.