Maison > interface Web > js tutoriel > Comment les fonctions asynchrones et les promesses fonctionnent-elles ensemble en JavaScript ?

Comment les fonctions asynchrones et les promesses fonctionnent-elles ensemble en JavaScript ?

Mary-Kate Olsen
Libérer: 2024-12-22 20:15:17
original
922 Les gens l'ont consulté

How Do Async Functions and Promises Work Together in JavaScript?

Fonctions et promesses asynchrones

Lorsque vous travaillez avec des opérations asynchrones, il est crucial de comprendre comment les fonctions et les promesses asynchrones interagissent.

Les fonctions asynchrones renvoient toujours des promesses

Contrairement aux fonctions régulières, Les fonctions asynchrones renvoient toujours une promesse, indiquant l'achèvement de leurs opérations asynchrones. Cela rend la gestion des opérations asynchrones dans le code séquentiel plus simple.

Exemple :

async function latestTime() {
  const bl = await web3.eth.getBlock('latest');
  return bl.timestamp;
}
Copier après la connexion

Renvoi de valeurs primitives par rapport aux promesses

Bien que la fonction renvoie une valeur primitive (bl.timestamp), la fonction lastTime() elle-même renvoie une promesse. Cela peut prêter à confusion lorsque vous tentez d'accéder à la valeur de retour.

Utilisation des promesses

Pour accéder à la valeur résolue de la promesse renvoyée, vous devez utiliser le then( ) :

latestTime().then((time) => {
  console.log(time);
});
Copier après la connexion

Alternativement, dans les environnements JavaScript modernes, vous pouvez utiliser le niveau supérieur wait :

const time = await latestTime();
console.log(time);
Copier après la connexion

Gestion explicite des promesses

Pour plus de clarté, voici une représentation plus explicite du comportement de la fonction asynchrone en termes de rappels de promesse :

function latestTime() {
    return new Promise((resolve, reject) => {
        web3.eth.getBlock('latest').then((bl) => {
            resolve(bl.timestamp);
        })
    });
}
Copier après la connexion

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