Maison > interface Web > js tutoriel > Comment puis-je implémenter une fonction de veille en JavaScript ?

Comment puis-je implémenter une fonction de veille en JavaScript ?

Linda Hamilton
Libérer: 2025-01-03 01:01:39
original
219 Les gens l'ont consulté

How Can I Implement a Sleep Function in JavaScript?

Comprendre la fonctionnalité de veille de JavaScript

Contrairement à d'autres langages de programmation, JavaScript ne dispose pas d'une fonction native sleep() pour suspendre l'exécution. Cependant, la recherche d'un véritable mécanisme de sommeil au sein de JavaScript a conduit à l'émergence de diverses techniques.

Fonction Pausecomp : une première tentative

L'une de ces tentatives était la pausecomp fonction, qui a introduit une méthode grossière pour induire une pause en vérifiant manuellement l’heure actuelle du système par rapport à un horodatage initial. Bien qu'il ait rempli son objectif à l'époque, les progrès ultérieurs l'ont rendu obsolète.

Solution JavaScript moderne : promesses et Async/Await

Aujourd'hui, l'approche recommandée pour la mise en œuvre un sommeil en JavaScript exploite les promesses et la syntaxe async/await. Cette approche offre une solution claire et simple :

function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}
Copier après la connexion

Pour utiliser cette fonction :

await sleep(2000); // Pauses execution for 2 seconds
Copier après la connexion

Avantages de l'approche moderne

L'approche moderne Cette approche offre plusieurs avantages par rapport aux méthodes précédentes :

  • Simplicité :La La fonction sleep() basée sur la promesse est facile à mettre en œuvre et à comprendre.
  • Flexibilité : Elle vous permet de spécifier la durée de la pause avec précision.
  • Async /Await : En utilisant async/await, vous pouvez utiliser la fonction sleep() de manière transparente dans le code asynchrone, ce qui en fait non bloquant.

Exemple d'utilisation

Voici une démonstration de la fonction sleep() en action :

async function demo() {
    for (let i = 0; i < 5; i++) {
        console.log(`Waiting ${i} seconds...`);
        await sleep(i * 1000);
    }
    console.log('Done');
}

demo();
Copier après la connexion

Ce code simule une fonctionnalité de veille, chaque itération attendant un nombre croissant de secondes avant d'imprimer les messages « En attente » et enfin d'enregistrer « Terminé ».

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal