0Pricing
TypeScript Academy · Leçon

Gestion des erreurs dans le code TypeScript asynchrone

Gérez les erreurs asynchrones avec des enveloppes et des utilitaires typés

Gestion des erreurs dans le code TypeScript asynchrone est une leçon TypeScript Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage TypeScript Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours TypeScript Academy comprend 4 leçons au total.

Bienvenue

Les fonctions asynchrones ajoutent de la complexité à la gestion des erreurs. TypeScript veille à ce que vous gériez correctement les rejets de Promise.

Try-catch avec async/await

Entourez les appels await d’un try-catch pour gérer les rejets de Promise.
async function loadUser(id: number): Promise<User> {
  try {
    return await api.getUser(id);
  } catch (err: unknown) {
    if (err instanceof Error) throw new AppError(err.message);
    throw new AppError('Unknown error');
  }
}

Erreurs de Promise.all

Promise.all est rejetée dès le premier rejet. Entourez-la d’un try-catch.
try {
  const [user, posts] = await Promise.all([getUser(id), getPosts(id)]);
} catch (err) { /* one or both failed */ }

Promise.allSettled

allSettled renvoie à la fois les réussites et les échecs sans lever d’exception.
const results = await Promise.allSettled([getUser(1), getPosts(1)]);
results.forEach(r => {
  if (r.status === 'fulfilled') console.log(r.value);
  else console.error(r.reason);
});

Résultat asynchrone typé

Combinez l’asynchronisme avec le modèle Result pour gérer explicitement les erreurs.
async function safeGet<T>(fn: () => Promise<T>): Promise<Result<T>> {
  try { return { ok: true, value: await fn() }; }
  catch (e) { return { ok: false, error: e as Error }; }
}

Rejets non gérés

Écoutez les rejets non gérés dans Node.js pour éviter les plantages.
process.on('unhandledRejection', (reason: unknown) => {
  console.error('Unhandled rejection:', reason);
  process.exit(1);
});

Délai d’expiration avec Promise.race

Implémentez un modèle de délai d’expiration typé avec Promise.race.
function withTimeout<T>(promise: Promise<T>, ms: number): Promise<T> {
  const timeout = new Promise<never>((_, reject) =>
    setTimeout(() => reject(new Error('Timeout')), ms));
  return Promise.race([promise, timeout]);
}

Modèle de nouvelle tentative

Implémentez une nouvelle tentative asynchrone typée avec des erreurs typées.
async function retry<T>(fn: () => Promise<T>, times: number): Promise<T> {
  for (let i = 0; i < times; i++) {
    try { return await fn(); } catch (e) { if (i === times - 1) throw e; }
  }
  throw new Error('Unreachable');
}

Gestion concurrente des erreurs

Gérez les erreurs lors de l’exécution d’opérations asynchrones concurrentes.
const [userResult, postsResult] = await Promise.allSettled([
  getUser(id).then(u => ({ ok: true, value: u })).catch(e => ({ ok: false, error: e })),
  getPosts(id).then(p => ({ ok: true, value: p })).catch(e => ({ ok: false, error: e })),
]);

Propagation des erreurs avec AsyncQueue

Les erreurs des itérateurs asynchrones se propagent correctement avec for-await.
async function* generate() {
  yield await fetchA();
  yield await fetchB(); // error here stops the loop
}
for await (const item of generate()) { process(item); }

Intergiciel d’erreurs typées dans Next.js

Utilisez des limites d’erreurs typées dans les actions serveur.
'use server';
async function createUser(data: CreateUserDto): Promise<Result<User>> {
  return safeGet(() => db.user.create({ data }));
}

Vérification rapide

Que se passe-t-il si vous n’interceptez pas une Promise rejetée dans une fonction async/await ?

Récapitulatif

Gestion des erreurs dans le code TypeScript asynchrone : vous avez appris les concepts clés de ce sujet et leur mise en pratique dans de vrais projets TypeScript.

Questions Fréquemment Posées

La leçon « Gestion des erreurs dans le code TypeScript asynchrone » est-elle gratuite ?

Oui — le texte complet de « Gestion des erreurs dans le code TypeScript asynchrone » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours TypeScript Academy, passe à CoddyKit PRO. Le cours TypeScript Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Gestion des erreurs dans le code TypeScript asynchrone » ?

Gérez les erreurs asynchrones avec des enveloppes et des utilitaires typés Tu pratiques TypeScript Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer TypeScript Academy ?

Aucune expérience préalable n'est requise. TypeScript Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Gestion des erreurs dans le code TypeScript asynchrone » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon TypeScript Academy ?

Oui. Chaque leçon TypeScript Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Classes et hiérarchies d’erreurs typées
  2. Motif Result : Ok et Err
  3. Affiner les erreurs interceptées (unknown ou Error)
  4. Gestion des erreurs dans le code TypeScript asynchrone
← Retour à TypeScript Academy