Sobes.tech
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 pending naar fulfilled of rejected gebeurt 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));