Maison  >  Article  >  interface Web  >  Comment suspendre et reprendre setTimeout() en JavaScript ?

Comment suspendre et reprendre setTimeout() en JavaScript ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-23 00:55:03254parcourir

How to Pause and Resume setTimeout() in JavaScript?

Mise en pause et reprise de setTimeout() en JavaScript

En JavaScript, setTimeout() vous permet de planifier l'exécution d'une fonction après un délai spécifié retard. Cependant, vous pouvez rencontrer des scénarios dans lesquels vous devez suspendre ou reprendre l'exécution du délai d'attente.

Pause et reprise de setTimeout()

Pour suspendre un délai d'attente en cours, vous peut utiliser la fonction window.clearTimeout(). Il faut que l'ID du délai d'attente soit effacé en tant qu'argument. Après la pause, vous pouvez reprendre le délai d'attente à l'aide de la méthode timer.resume().

Minuteur personnalisé avec fonctionnalité Pause/Reprise

Une approche alternative consiste à créer un objet timer avec les méthodes pause et reprise. Cela vous permet de contrôler le délai d'attente plus directement. Voici un exemple d'une telle minuterie :

<code class="javascript">var Timer = function(callback, delay) {
    var timerId, start, remaining = delay;

    this.pause = function() {
        window.clearTimeout(timerId);
        timerId = null;
        remaining -= Date.now() - start;
    };

    this.resume = function() {
        if (timerId) {
            return;
        }

        start = Date.now();
        timerId = window.setTimeout(callback, remaining);
    };

    this.resume();
};</code>

Obtention du temps restant sur setTimeout()

Malheureusement, il n'existe aucun moyen intégré pour obtenir le temps restant un setTimeout(). Cependant, vous pouvez utiliser l'approche décrite ci-dessus, dans laquelle vous stockez manuellement l'heure de début et calculez le temps restant lors de la mise en pause du minuteur.

En encapsulant setTimeout() dans un objet timer personnalisé ou en utilisant l'approche de calcul manuel du temps , vous pouvez obtenir des fonctionnalités de pause et de reprise pour vos délais d'attente en JavaScript.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn