Promesses en TypeScript

Introduction aux Promesses

En TypeScript, les promesses sont utilisées pour gérer des opérations asynchrones, ce qui permet d'avoir un meilleur contrôle sur l'exécution du code.

Création de Promesses

Pour déclarer une promesse, vous devez utiliser le mot-clé new suivi de Promise. Le constructeur Promise requiert une fonction qui prend deux arguments :

  1. Une fonction pour résoudre la promesse.
  2. Une fonction pour rejeter la promesse.
const maPromesse = new Promise((resolve, reject) => {
  // Code asynchrone ici
});

Types de Retour

En TypeScript, vous pouvez ajouter une annotation de type pour préciser le type de valeur que la promesse renvoie. Si cela n'est pas défini, le type par défaut est any. Par exemple, pour indiquer que la promesse renvoie une chaîne de caractères :

const maPromesse: Promise = new Promise((resolve, reject) => {
  // Cette promesse résout à une chaîne de caractères
});

Dans cet exemple, maPromesse est une promesse qui résout à une chaîne. Si un type différent est utilisé pour résoudre la promesse, cela générera une erreur.

Remarque : L'annotation de type pour les promesses concerne uniquement la valeur retournée, et non celle étant rejetée. Il est conseillé que toutes les promesses rejetées le soient avec une instance d'Error pour assurer une cohérence.

Gestion des Promesses

Une fois la promesse déclarée, vous pouvez utiliser les méthodes .then() et .catch() pour gérer les résultats de l'opération asynchrone. La méthode .then() s'active lorsque la promesse est résolue, tandis que .catch() est appelée en cas de rejet.

maPromesse
  .then((valeur) => {
    console.log('Promesse résolue avec la valeur : ' + valeur);
  })
  .catch((erreur) => {
    console.error('Promesse rejetée avec l’erreur : ' + erreur);
  });

Utilisation de async/await

TypeScript prend également en charge la syntaxe async/await, qui permet de gérer les promesses de manière plus lisible.
Voici un exemple :

async function maFonctionAsynchrone() {
  try {
    const valeur = await maPromesse;
    console.log('Promesse résolue avec la valeur : ' + valeur);
  } catch (erreur) {
    console.error('Promesse rejetée avec l’erreur : ' + erreur);
  }
}

Le mot-clé async indique qu'une fonction renvoie une promesse, et await est utilisé pour suspendre l'exécution jusqu'à ce que la promesse soit résolue. Un bloc try/catch est employé pour gérer les promesses rejetées.

Application des Promesses dans le Développement Web

Les promesses jouent un rôle crucial lors de la création de sites web ou d'applications. Par exemple, lorsqu'il s'agit d'effectuer des appels à des API, les promesses permettent de récupérer des données de manière asynchrone sans bloquer le fil d'exécution de votre programme.

En intégrant des promesses dans votre code, vous pouvez vous assurer que votre application reste réactive, améliorant ainsi l'expérience utilisateur. De plus, l'utilisation de async/await permet de rendre votre code plus propre et plus facile à lire, ce qui est essentiel lorsque vous travaillez sur des projets de grande envergure comme des startups.