Maison >interface Web >js tutoriel >Comment puis-je implémenter une fonction de veille JavaScript moderne à l'aide de promesses ?

Comment puis-je implémenter une fonction de veille JavaScript moderne à l'aide de promesses ?

DDD
DDDoriginal
2024-12-28 02:47:10719parcourir

How Can I Implement a Modern JavaScript Sleep Function Using Promises?

Une approche moderne de la veille JavaScript : présentation de la solution basée sur les promesses

Depuis sa création en 2009, JavaScript a subi des transformations importantes. La fonction pausecomp, autrefois populaire, permettant de créer un « vrai » sommeil au sein d'une fonction est devenue obsolète. Aujourd'hui, une approche plus efficace et plus polyvalente nous attend.

La version de veille moderne de JavaScript s'appuie sur la puissance de Promises. En utilisant le nouveau constructeur Promise(), nous pouvons créer une promesse qui se résout après un nombre spécifié de millisecondes. En utilisant le mot-clé wait, nous pouvons suspendre l'exécution de la fonction jusqu'à ce que la promesse soit résolue, obtenant ainsi le comportement de sommeil souhaité.

Voici l'extrait de code mis à jour :

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

Cette fonction peut être utilisé de plusieurs manières :

En tant que one-liner :

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

En tant que fonction autonome :

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

En tant que fonction tapée dans TypeScript :

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

Pour utiliser la fonction veille, appelez-la simplement avec la durée souhaitée en millisecondes et attendez son résolution :

await sleep(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();

Cette approche mise à jour simplifie non seulement la mise en œuvre du sommeil, mais fournit également une solution moderne et efficace qui exploite la nature asynchrone de 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