Zruck zum Blog, du Zniachtl
Aug. 2022·1 Min. zum LesnVo da KI übersetzt

Promises

#javascript

A Konzept, des für vüle Entwickler zuerst schwer zum Vastehn is: Promises.

Promises wurden eingführt, um de Valorbeitung asynchroner Operationen in Javascript zu erleichtern. Sie lösn des Problem, dass Callbacks oft tief valschachtelt sand und schwer zu lesn und zu wartn. Promises bietn a sauberere und einfachere Möglichkeit, asynchrone Operationen durchzuführn und zu valwoitn.

Aber wia funktionieren Promises genau? A Promise is im Grunde a Objekt, des a Operation asynchron ausführt und entweda an Wert zruckgibt oda an Fehler wirft. A Promise kann si in oam vo drei Zustände befindn:

  1. Pending: Da Ausgangszustand, in dem si des Promise befindt, wenn's erstöt wurde.
  1. Fulfilled: Da Zustand, in dem des Promise erfolgreich obgschlossen wurde und an Wert zruckgebn hot.
  1. Rejected: Da Zustand, in dem des Promise an Fehler gworfn hot.

Loss uns des an am Beispiel erklärn:

const myPromise = new Promise((resolve, reject) => {
  setTimeout(() => {
    if (Math.random() >= 0.5) {
      resolve("Success!");
    } else {
      reject("Error!");
    }
  }, 1000);
});

myPromise
  .then((result) => {
    console.log(result);
  })
  .catch((error) => {
    console.log(error);
  });

In dem Beispiel erstöin ma a Promise, des noch ana Sekunde entweda "Success!" oda "Error!" zruckgibt, je nachdem, ob a Zufallszoi größer oda kleiner ois 0,5 is. Mia rufn dann des Promise mit da "then"-Methode auf, um den Erfolg zu valorbeitn, oda mit da "catch"-Methode, um den Fehler zu valorbeitn.

Promises kinnan a vakettet wern, um komplexe asynchrone Operationen auszuführn. Des folgende Beispiel zeigt, wia ma Promises vakettet, um a asynchrone Aufgabe in mehrere Schritte auszuführn:

function stepOne() {
  return new Promise((resolve) => {
    setTimeout(() => {
      console.log("Step One Complete");
      resolve();
    }, 1000);
  });
}

function stepTwo() {
  return new Promise((resolve) => {
    setTimeout(() => {
      console.log("Step Two Complete");
      resolve();
    }, 1000);
  });
}

function stepThree() {
  return new Promise((resolve) => {
    setTimeout(() => {
      console.log("Step Three Complete");
      resolve();
    }, 1000);
  });
}

stepOne()
  .then(() => stepTwo())
  .then(() => stepThree())
  .then(() => console.log("All Steps Complete"));

In dem Beispiel hom ma drei Funktionen definiert, de jeweils a asynchrone Operation ausführn und a Promise zruckgebn, wenn's obgschlossen sand. Mia rufn dann de Funktionen hintereinanda auf, indem ma's mit da "then"-Methode vaketten, damit sicher is, dass jeder Schritt erst ausgführt wird, wenn da vorherige fertig is. Ned so schwer, oda, du Gscheidhaferl?

NeicherAutosort: Schnö und einfach Bilder und Videos sortiernElterJavaScript - Generatoren