Aujourd'hui, j'ai été confronté à ma propre ignorance quant à la différence entre ces deux façons de gérer les opérations asynchrones, j'ai donc décidé de lire et de faire des recherches pour écrire cet article - pour me rappeler et, qui sait, peut-être aider d'autres développeurs à mieux comprendre cette différence.
À l'époque, je savais plus ou moins comment expliquer qu'ils faisaient tous les deux la même chose, avec then() amenant les données résolues, tandis que résoudre et rejet servaient à terminer par un succès ou une erreur. Async/await devait attendre le résultat avant de passer à l'étape suivante. Ce n'était pas complètement faux, mais cela pourrait être expliqué d'une bien meilleure manière.
La promesse, comme son nom l'indique, est une « promesse » de retour de données qui passe par trois états principaux :
const minhaPromise = new Promise((resolve, reject) => { let sucesso = true; // Apenas um exemplo condicional if (sucesso) { resolve("Operação concluída com sucesso!"); } else { reject("Ocorreu um erro na operação."); } });
C'était la manière la plus courante de gérer les promesses avant l'async/wait. Nous utilisons les méthodes then(), catch() et enfin().
minhaPromise .then((mensagem) => { console.log(mensagem); // "Operação concluída com sucesso!" }) .catch((erro) => { console.error(erro); // Se der erro, isso será executado. }) .finally(() => { console.log("Finalizando a execução da Promise"); // Sempre será executado. });
Une fonction marquée async renvoie automatiquement une promesse, et await est utilisée pour "mettre en pause" l'exécution jusqu'à ce que la promesse soit résolue.
async function buscarDados() { try { const response = await fetch("https://jsonplaceholder.typicode.com/todos/1"); const data = await response.json(); console.log("Dados recebidos:", data); } catch (error) { console.error("Erro ao buscar dados:", error); } } buscarDados();
L'enchaînement des promesses peut rendre le code très imbriqué, surtout lorsque nous en utilisons plusieurs then() à la suite, ce qui rend la lecture plus difficile.
Async/await vous permet d'écrire du code asynchrone d'une manière plus similaire au code synchrone, rendant la logique plus facile à lire et à comprendre. Le code devient plus propre, surtout lorsque nous devons gérer plusieurs opérations asynchrones.
De plus, la façon de gérer les erreurs en utilisant try/catch avec async/await est plus intuitive que la simple utilisation de catch dans Promises.
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!