Une promesse (Promise) représente le résultat futur d'une opération asynchrone. Elle est en attente, puis tenue (résolue avec une valeur) ou rejetée (avec une erreur), et ne change plus d'état ensuite. On y réagit avec then, catch et finally.
Exemple
new Promise((resolve) => setTimeout(() => resolve('ok'), 500))
.then(console.log)