Comment faire pour annuler une sans rebond fonction après, il est appelé, et avant qu'il s'exécute?
- Je créer un sans rebond version d'une fonction avec un trait de soulignement:
var debouncedThing = _.debounce(thing, 1000);
Une fois debouncedThing est appelé...
debouncedThing();
...est-il possible de l'annuler, au cours de la période d'attente avant qu'il s'exécute en fait?
- Pourquoi le downvote?
- double possible de Utilisation de la fonction anti-rebond dans soulignement
- Cette question n'est pas claire. Le mien est spécifique. Cette question n'est pas de fournir une réponse à ma question.
- La réponse est "Non".
- Bien sûr, vous pouvez mettre en place votre propre version de debouncer qui sera en quelque sorte exposer
timeout
ou une fonction de compensation de l'expiration du délai. - cela a été très bien répondu j'espère que vous avez retiré le downvote
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez la dernière version de lodash vous pouvez tout simplement faire:
Une autre solution est avec un drapeau:
Ce que j'ai fait est utilisé _.mixin pour créer un _.cancellableDebounce méthode. Il est presque identique à l'original, sauf pour les deux nouvelles lignes de.
UTILISATION:
Le moyen le plus facile d'annuler un déjà appelé fonction au sein de son anti-rebond de la période est de rendre résiliables. Vraiment juste ajouter 3 lignes de code et une condition.
Vous annulez en l'appelant de nouveau avec
abort = true
.Vieux, mais l'ajout d'une note pour quelqu'un d'autre qui est ici.
Les docs (je suis à la recherche d'1.9.1 droit maintenant) dire que vous devriez être en mesure de le faire:
Ce serait faire la chose que l'OP veut faire (et ce que je voulais faire). Il ne serait pas imprimer le message de la console.
Je n'ai jamais pu obtenir que cela fonctionne. J'ai cherché haut et bas pour un
.cancel()
, comme promis, le trait de Soulignement doc et je ne le trouve pas.Si vous utilisez le trait de Soulignement, utilisez l'option d'indicateur dans la accepté de répondre par Carlos Ruana. Mes exigences lamentablement (à mon avis) ne permettent pas une mise à niveau (à mon avis) à partir de trait de Soulignement pour Lodash. Trait de soulignement a moins de fonctionnalités, mais il est plus fonctionnel que sans.