Promise.try()
JavaScript 🟡 MidDé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.
Termes liés
Sources
Fiche mise à jour le 2026-09-27