In ES6 (ES2015) worden beloften (Promises) geïntroduceerd als native objecten om asynchrone operaties beter te hanteren. Hieronder staat een voorbeeld van hoe je Promises kunt gebruiken in Node.js.
```
let promise = new Promise(function(resolve, reject) {
// doe een asynchrone operatie
promise.then(
function(result) { // succeshandler
console.log(“Resultaat: “ + result);
},
function(error) { // foutafhandelaar
console.error(“Fout: “ + error.message);
}
);
```
Hier maken we een nieuwe Promise die een asynchrone operatie vertegenwoordigt. De Promise-constructor neemt een uitvoerderfunctie als argument, die op zijn beurt twee functies als argumenten neemt: resolve (om aan te geven dat de operatie met succes is voltooid) en reject (om aan te geven dat de operatie is mislukt).
Vervolgens roep je de `then`-methode aan op de belofte om succes- en foutafhandelaars te registreren. Het eerste argument van `then` is de functie die wordt uitgevoerd als de belofte wordt ingelost (d.w.z. de operatie succesvol is), en het tweede argument is de functie die wordt uitgevoerd als de belofte wordt afgewezen (d.w.z. de operatie mislukt).
Het is belangrijk op te merken dat Promises chainable zijn, wat betekent dat je een nieuw Promise-object kunt retourneren uit je succes- en foutafhandelingsfuncties, waardoor je asynchrone operaties sequentieel kunt uitvoeren. Deze functie is bijzonder nuttig voor meer complexe asynchrone workflows.
Bovendien bevat ES6 ook de `async`/`await`-syntax voor een nog eenvoudiger beheer van asynchrone operaties, maar dat is een onderwerp voor een andere vraag!