Promise.withResolvers()
JavaScript 🟡 MidDéfinition
Méthode statique ES2024 qui renvoie un objet {promise, résolve, reject} : la promesse et ses fonctions de règlement vivent dans le même scope, sans passer par le constructeur et ses variables externes. Disponible partout depuis mars 2024 (Baseline).
Analogie
Recevoir la boîte et la clé en même temps, plutôt que de devoir fabriquer la clé depuis l'intérieur de la boîte.
Exemple de code
// File d'attente : on résout plus tard, depuis un autre événement
const { promise, resolve, reject } = Promise.withResolvers();
bouton.addEventListener('click', () => resolve('cliqué'), { once: true });
setTimeout(() => reject(new Error('délai')), 5000);
console.log(await promise);
// Avant : let res; const p = new Promise(r => { res = r; });
Cas d'usage
Ponts événement → promesse, files de messages, itérateurs asynchrones alimentés de l'extérieur.
Anti-pattern
Stocker résolve dans une variable globale « pour plus tard » : préférer le trio local et un seul appel.
Termes liés
Sources
Fiche mise à jour le 2026-09-27