Alle Originalinhalte werden auf Ukrainisch erstellt. Noch nicht alle Inhalte wurden übersetzt. Einige Beiträge sind möglicherweise nur auf Ukrainisch verfügbar.Mehr erfahren

Was ist ein Promise in JavaScript und wie versteht man das Wesentliche schnell?

Beitrags-Cover: Was ist ein Promise in JavaScript und wie versteht man das Wesentliche schnell?
InhaltsverzeichnisKlicke auf den Link, um zur gewünschten Stelle zu navigieren
Dieser Inhalt wurde automatisch aus dem Ukrainischen übersetzt.
Stellen Sie sich vor, Sie haben einen Kaffee im Café bestellt. Der Barista nimmt die Bestellung entgegen, gibt die Quittung aus und sagt: „Warten Sie bitte einen Moment“. Sie stehen nicht still, sondern können an einen Tisch gehen, Ihr Telefon überprüfen oder auf Nachrichten antworten. Wenn der Kaffee fertig ist, ruft der Barista Sie – und Sie erhalten das Ergebnis.
Promise in JavaScript funktioniert genauso:
  1. Sie senden eine Anfrage (zum Beispiel an den Server) und erhalten ein Versprechen (Promise), dass die Antwort später kommt.
  2. JavaScript stoppt die Ausführung des Codes nicht – es führt weiterhin andere Aufgaben aus.
  3. Wenn das Ergebnis bereit ist, informiert das Promise darüber, und Sie können es verarbeiten.

Ein einfaches Beispiel für ein Promise

function makeCoffee() {
  return new Promise((resolve) => {
    console.log("Bestellung angenommen...");
    setTimeout(() => {
      resolve("☕ Fertig! Hier ist Ihr Kaffee.");
    }, 2000);
  });
}

console.log("Ich blättere gerade durch mein Telefon...");
makeCoffee().then((message) => console.log(message));
Zuerst wird console.log("Ich blättere gerade durch mein Telefon...") ausgeführt, da das Promise den Code nicht blockiert.
Dann erscheint nach 2 Sekunden "☕ Fertig! Hier ist Ihr Kaffee.", wenn das Promise abgeschlossen ist.
promise_example_1.png
Wenn etwas schiefgeht (zum Beispiel, wenn der Kaffee ausgeht), können wir .catch() hinzufügen:
function makeCoffee() {
  return new Promise((resolve, reject) => {
    const coffeeReady = Math.random() > 0.5; // zufälliger Erfolg oder Misserfolg

    console.log("Bestellung angenommen...");
    setTimeout(() => {
      if (coffeeReady) {
        resolve("☕ Fertig! Hier ist Ihr Kaffee.");
      } else {
        reject("❌ Entschuldigung, der Kaffee ist ausgegangen.");
      }
    }, 2000);
  });
}

makeCoffee()
  .then((message) => console.log(message))
  .catch((error) => console.log(error));
Es ist wie im echten Leben: Wenn kein Kaffee mehr da ist, entschuldigt sich der Barista, und Sie erhalten eine Fehlermeldung.
promise_example_2.png

Wie schnell verstehen?

Versuchen Sie, selbst Promises zu schreiben: Erstellen Sie eine Funktion, die 3 Sekunden wartet, bevor sie antwortet, oder die zufällig mit einem Fehler endet. So können Sie schnell verstehen, wie asynchroner Code funktioniert.
Aber bevor Sie mit Promises experimentieren, sollten Sie die Struktur (resolve, reject, catch usw.) verstehen. Dazu gibt es einen separaten Beitrag.

Dieser Beitrag hat noch keine Ergänzungen vom Autor.

Was ist der Unterschied zwischen spec_helper.rb und rails_helper.rb in RSpec?
08. Dez, 13:53 Uhr

Was ist der Unterschied zwischen spec_helper.rb und rails_helper.rb in RSpec?

meme code
meme code@memecode
09. Dez, 14:50 Uhr

[Fix] Keine solche Datei oder Verzeichnis @ rb_sysopen - tmp/pids/server.pid

meme code
meme code@memecode
Was man wissen muss, um eine erfolgreiche Karriere als Freelancer im IT-Bereich aufzubauen
23. Dez, 16:03 Uhr

Was man wissen muss, um eine erfolgreiche Karriere als Freelancer im IT-Bereich aufzubauen

meme code
meme code@memecode
Virtueller Cloud-Server: Was ist das und was sind seine Besonderheiten
03. Jan, 10:58 Uhr

Virtueller Cloud-Server: Was ist das und was sind seine Besonderheiten

meme code
meme code@memecode
[Fix] Heroku / SearchBox-Addon - Indexierungsfehler "Der Client kann den Server nicht als Elasticsearch verifizieren"
31. Jan, 13:09 Uhr

[Fix] Heroku / SearchBox-Addon - Indexierungsfehler "Der Client kann den Server nicht als Elasticsearch verifizieren"

meme code
meme code@memecode
06. Feb, 15:31 Uhr

Fehlerbehebung [DEPRECATION] #adapters ist veraltet. Verwenden Sie stattdessen #profiles. (Codecov / docile)

meme code
meme code@memecode
Die Struktur von Promise (JavaScript) und wie man damit arbeitet
18. Feb, 14:33 Uhr

Die Struktur von Promise (JavaScript) und wie man damit arbeitet

meme code
meme code@memecode
Was ist Memoization (Beispiele für Ruby und Ruby on Rails)?
20. Feb, 18:16 Uhr

Was ist Memoization (Beispiele für Ruby und Ruby on Rails)?

meme code
meme code@memecode
Was ist Debounce in JavaScript und warum ist es wichtig?
21. Mär, 16:39 Uhr

Was ist Debounce in JavaScript und warum ist es wichtig?

meme code
meme code@memecode
Was ist CFB (Cipher Feedback)?
21. Mär, 16:53 Uhr

Was ist CFB (Cipher Feedback)?

meme code
meme code@memecode
Was ist XOR und wie funktioniert es?
21. Mär, 17:05 Uhr

Was ist XOR und wie funktioniert es?

meme code
meme code@memecode
Embedded-Programmierung: Was ist das und wo fängt man an
24. Mär, 16:48 Uhr

Embedded-Programmierung: Was ist das und wo fängt man an

meme code
meme code@memecode