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

Comment puis-je implémenter efficacement une fonction de veille dans JavaScript moderne ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-03 11:56:40706parcourir

How Can I Efficiently Implement a Sleep Function in Modern JavaScript?

Créer une solution de sommeil efficace en JavaScript : une approche moderne

Alors que la fonction pausecomp offre une solution rudimentaire pour induire une pause en JavaScript, les normes contemporaines exigent une solution plus efficace et une approche élégante. Cet article présente les meilleures pratiques actuelles pour obtenir un « vrai sommeil » au sein d'une fonction en JavaScript, qui a évolué depuis 2009.

La fonction de sommeil supérieure

function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}

Cette fonction exploite la promesse API, une fonctionnalité intégrée introduite dans ECMAScript 2015, pour créer une promesse qui représente l'opération de mise en veille asynchrone. Une fois le nombre spécifié de millisecondes (ms) écoulé, la fonction de résolution est invoquée, ce qui déclenche à son tour la poursuite de l'exécution.

Exemples d'utilisation

En tant que fonction :

const sleep = ms => new Promise(r => setTimeout(r, ms));

Une seule ligne Syntaxe :

await new Promise(r => setTimeout(r, 2000));

Démo :

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

demo();

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
Article précédent:JavaScript contre TypeScriptArticle suivant:JavaScript contre TypeScript