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
Libérer: 2024-12-28 02:47:10
original
709 Les gens l'ont consulté

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));
}
Copier après la connexion

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

En tant que one-liner :

await new Promise(r => setTimeout(r, 2000));
Copier après la connexion

En tant que fonction autonome :

const sleep = ms => new Promise(r => setTimeout(r, ms));
Copier après la connexion

En tant que fonction tapée dans TypeScript :

const sleep = (ms: number) => new Promise((r) => setTimeout(r, ms));
Copier après la connexion

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

await sleep(2000);
Copier après la connexion

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();
Copier après la connexion

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal