Vue est un framework JavaScript populaire largement utilisé pour créer des applications d'une seule page et des interfaces utilisateur interactives. Dans Vue, nous devons souvent gérer des opérations asynchrones, telles que l'obtention de données ou l'exécution de requêtes réseau. Promise est une technologie utilisée dans la programmation asynchrone qui peut nous aider à mieux gérer les opérations asynchrones. Dans cet article, nous verrons comment utiliser Promise pour gérer les opérations asynchrones dans Vue.
Qu'est-ce que la promesse ?
Promise est une technologie permettant de gérer les opérations asynchrones en JavaScript. Un objet Promise représente une opération asynchrone qui n’est pas encore terminée et qui peut produire un résultat ultérieurement. Le statut d'un objet Promise peut être incomplet, terminé ou rejeté. Lorsqu'un objet Promise est dans un état en suspens, nous pouvons attacher un ou plusieurs gestionnaires pour effectuer des actions spécifiques lorsque l'état de l'objet Promise change.
Utilisation de Promise dans Vue
Dans Vue, nous pouvons utiliser Promise pour gérer les opérations asynchrones. Voici les étapes de base pour utiliser Promise :
Nous pouvons créer un objet Promise à l'aide du constructeur Promise. Le constructeur Promise accepte un paramètre de fonction qui représente l'opération asynchrone qui doit être effectuée. Au sein des fonctions, nous pouvons utiliser du code asynchrone tel que des requêtes réseau ou des minuteries.
Par exemple, le code suivant crée un objet Promise qui utilise un minuteur pour simuler des opérations asynchrones chronophages :
const myPromise = new Promise((resolve, reject) => { setTimeout(() => { resolve("Promise resolved"); }, 1000); });
Dans le code ci-dessus, la fonction setTimeout appelle le gestionnaire après 1 seconde et "Promesse résolue" en tant que paramètres transmis à la fonction de résolution. Cela indique que l'opération asynchrone s'est terminée avec succès.
Une fois l'objet Promise créé, nous pouvons attacher un gestionnaire à l'aide de la méthode then(). La méthode then() accepte deux paramètres de fonction. La première fonction représente l'opération à effectuer en cas de succès et la seconde fonction représente l'opération à effectuer en cas d'échec.
Par exemple, le code suivant attache un gestionnaire qui génère "Promesse résolue" lorsque l'état de l'objet Promise est terminé :
myPromise.then((result) => { console.log(result); });
Dans le code ci-dessus, nous passons une fonction anonyme en tant que paramètre à l'objet myPromise de la méthode then(). Cette fonction sera appelée lorsque le statut de l'objet myPromise sera terminé, en lui passant le résultat de l'objet Promise en paramètre. Dans cette fonction, nous utilisons la fonction console.log() pour afficher le résultat : "Promesse résolue".
Nous pouvons utiliser la méthode catch() pour gérer l'état d'erreur de l'objet Promise. La méthode catch() accepte un paramètre de fonction qui représente l'action à effectuer lorsqu'une erreur se produit.
Par exemple, le code suivant utilise la méthode catch() pour gérer l'état d'erreur de l'objet Promise lors de l'appel de l'objet myPromise :
myPromise .then((result) => { console.log(result); }) .catch((error) => { console.error(error); });
Dans le code ci-dessus, nous appelons la méthode catch() après la méthode then() pour gérer l'état d'erreur de l'objet Promise. Lorsque l'état de l'objet myPromise est rejeté, la fonction paramètre de la méthode catch() sera appelée et les informations d'erreur de l'objet Promise lui seront transmises en paramètre. Dans cette fonction, nous utilisons la fonction console.error() pour afficher les informations d'erreur.
Exemple
Ce qui suit est un exemple d'utilisation de Promise pour effectuer des requêtes réseau à l'aide de la bibliothèque axios dans Vue :
import axios from "axios"; export default { data() { return { posts: [], error: "" }; }, created() { axios .get("https://jsonplaceholder.typicode.com/posts") .then(response => { this.posts = response.data; }) .catch(error => { this.error = error.message; }); } };
Dans le code ci-dessus, nous utilisons la bibliothèque axios dans la méthode de cycle de vie créée() pour effectuer des requêtes réseau. Nous attribuons les données de réponse aux publications d'attributs de données du composant dans la méthode then(). Si une erreur se produit, nous attribuons les informations d'erreur à l'erreur d'attribut de données du composant dans la méthode catch().
Conclusion
Promise est une technique puissante pour gérer les opérations asynchrones dans Vue. Cela peut nous aider à mieux gérer les opérations asynchrones et à éviter des problèmes tels que l'imbrication des rappels. Lors de l'utilisation de Vue, nous devons maîtriser l'utilisation de Promise afin de mieux gérer les opérations asynchrones.
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!