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; }
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); });
Alternativement, dans les environnements JavaScript modernes, vous pouvez utiliser le niveau supérieur wait :
const time = await latestTime(); console.log(time);
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); }) }); }
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!