Middle
Hoe werkt Promise in JavaScript?
sobes.tech AI
Antwoord van AI
- Object dat een mogelijke eindafsluiting (of mislukking) van een asynchrone operatie en de resulterende waarde ervan voorstelt.
- Stati van een belofte:
pending: initiële staat, noch voldaan noch afgewezen.fulfilled: geeft aan dat de operatie succesvol is voltooid.rejected: geeft aan dat de operatie met een fout is beëindigd.
- De overgang van
pendingnaarfulfilledofrejectedgebeurt slechts één keer en is onomkeerbaar. - Methoden:
.then(onFulfilled, onRejected): accepteert twee callback-functies. De eerste (onFulfilled) wordt aangeroepen bij succes, de tweede (onRejected) bij fout. Beide argumenten zijn optioneel. Geeft een nieuwe belofte terug..catch(onRejected): verkorte vorm van.then(null, onRejected). Wordt gebruikt voor foutafhandeling. Geeft een nieuwe belofte terug..finally(onFinally): wordt onafhankelijk van het resultaat van de belofte aangeroepen (succes of fout). Handig voor resource cleanup. Geeft een nieuwe belofte terug.
- Aanmaken van een belofte:
new Promise((resolve, reject) => {
// Asynchrone operatie
const success = true;
if (success) {
resolve("Operatie geslaagd!"); // Overgang naar fulfilled
} else {
reject("Er is iets misgegaan..."); // Overgang naar rejected
}
});
- Ketens van beloftes:
.then(),.catch(),.finally()geven beloftes terug, waardoor ketens kunnen worden gemaakt voor sequentiële uitvoering van asynchrone operaties.
fetch(url)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Fout:', error));