Promise.try()

JavaScript 🟡 Mid

Définition

Méthode statique ES2025 qui appelle une fonction immédiatement et enveloppe son résultat dans une promesse : une valeur renvoyée donne une promesse déjà résolue, un throw synchrone une promesse rejetée, une promesse renvoyée est simplement suivie. Elle unifie ainsi le traitement des callbacks synchrones et asynchrones. Disponible dans les navigateurs majeurs depuis janvier 2025.

Analogie

Un filet de sécurité tendu avant le saut, que le trapéziste tombe tout de suite ou plus tard.

Exemple de code

function executer(action) {
  return Promise.try(action)
    .then(r => console.log('ok', r))
    .catch(e => console.error('erreur', e.message));
}
executer(() => 'sync');                 // ok sync
executer(() => { throw new Error('x'); }); // erreur x (pas de crash)
executer(async () => 'async');         // ok async
// Avant : Promise.resolve().then(fn) retardait fn d'un tick

Cas d'usage

Wrappers de plugins ou de hooks utilisateur dont on ne sait pas s'ils sont async ; débuts de chaînés de promesses.

Anti-pattern

Écrire Promise.résolve(fn()) : un throw synchrone dans fn échappe à la chaîne .catch.
#core#ES2025#async

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre