Heim  >  Artikel  >  Web-Frontend  >  Es ist nicht so schwer! „Promise“ in Javascript verstehen

Es ist nicht so schwer! „Promise“ in Javascript verstehen

Susan Sarandon
Susan SarandonOriginal
2024-09-25 06:24:021007Durchsuche

It’s not that hard! To understand `Promise` in javascript

Der Inhalt dieses Artikels ist sehr gut für Javascript-Anfänger geeignet. Es wird in einer einfachen und leicht verständlichen Sprache beschrieben, sodass Sie sich keine Sorgen machen müssen, es nicht zu verstehen.

Versprochen, warum existierst du?

Versprechen ist ein unverzichtbarer Wissenspunkt beim Erlernen der modernen Javascript-Sprache. Viele Menschen fühlen sich beim Lesen verwirrt. Der Hauptgrund lässt sich in einem Satz zusammenfassen:

Der Code wird nicht mehr von oben nach unten ausgeführt.

Normalerweise wird der von uns geschriebene Code sequentiell ausgeführt, wir schreiben beispielsweise einen Code, der von 1 bis 3 zählt.

console.log(1)
console.log(2)
console.log(3)

Drücken Sie F12, um die Konsole unseres Browsers zu öffnen, kopieren Sie den obigen Code hinein, drücken Sie die Eingabetaste und Sie können sehen, dass die Zahlen 1 bis 3 der Reihe nach ausgedruckt werden.

1
2
3

Wenn wir nun die Anforderung haben, dass die Reihenfolge der Codes nicht geändert werden kann, die Reihenfolge der endgültigen Ausdrucke jedoch unabhängig von der Reihenfolge der Codes sein muss, können wir das dann tun?

Stellen wir uns vor, wenn 1, 2 und 3 jeweils von drei Personen gedruckt werden, wäre es sehr einfach. Wir müssen ihnen nur die Aufgabe mitteilen, gleichzeitig Zahlen zu drucken, und die Reihenfolge der Ausdrucke hängt nur von der Ausführungszeit der Aufgaben ab.

Versprochen, die magische Wirkung

Wie weisen wir also die Druckaufgabe drei Personen zu? Hier wird Promise verwendet. Indem wir ein neues Promise-Objekt erstellen, können wir einen Codeabschnitt einem neuen „Prozess“ zuweisen, anstatt ihn auf dem aktuellen „Prozess“ auszuführen. Beachten Sie, dass der „Prozess“ hier nicht mit dem Betriebssystemprozess übereinstimmt, über den wir oft sprechen, sondern nur ein abstraktes Konzept ist, das eine virtuelle Einheit darstellt, die Code nacheinander ausführt.

Versprochen, Montageanleitung

Wie wir gerade gesagt haben, kann Promise als neuer „Prozess“ betrachtet werden. Wenn wir also möchten, dass er einen beliebigen Code ausführt, können wir ihn in eine Funktion einschließen und ihm übergeben. Auf diese Weise wird der Code nicht sofort ausgeführt.

Promise stellt uns außerdem zwei Funktionen zur Verfügung, eine ist „Auflösen“ und die andere ist „Ablehnen“, die wir aufrufen können, wenn die Aufgabe abgeschlossen bzw. fehlgeschlagen ist. Diese beiden Funktionen werden als Parameter an Promises interne Funktion übergeben. Wir können also eines wie folgt zusammenstellen:

Promise(
  (resolve, _reject) => {
    setTimeout(() => {
      console.log(1)
      resolve()
    }, 300)
  }
)

Hier verwenden wir setTimeout, um eine zeitaufwändige Aufgabe zu simulieren. In realen Szenarien kann diese Aufgabe darin bestehen, eine Datei zu lesen, eine Netzwerkschnittstelle anzufordern oder auf Benutzereingaben zu warten. Wenn die Aufgabe abgeschlossen ist, rufen wir die Funktion „resolvethe“ auf, um anzuzeigen, dass die Aufgabe abgeschlossen wurde.

Vollständiger Code

Dann folgen wir der gleichen Methode und versprechen, wenn wir die anderen beiden zusammenbauen, müssen wir ihnen nur unterschiedliche Drucknummern und die für die Aufgabe benötigte Zeit mitteilen. Schließlich sieht der vollständige Code so aus. Sie können versuchen, ihn in die Konsole zu kopieren und auszuprobieren.

Promise(
  (resolve, _reject) => {
    setTimeout(() => {
      console.log(1)
      resolve()
    }, 300)
  }
)
new Promise(
  (resolve, _reject) => {
    setTimeout(() => {
      console.log(2)
      resolve()
    }, 200)
  }
)
new Promise(
  (resolve, _reject) => {
    setTimeout(() => {
      console.log(3)
      resolve()
    }, 100)
  }
)

Schließlich hängt die Reihenfolge, in der die Zahlen gedruckt werden, mit der Ausführungszeit der Aufgaben zusammen:

3
2
1

Versprechen, Parallelitätsmodell

Beim gleichzeitigen Programmieren geht es darum, die Ausführung einer großen Anzahl von Aufgaben gleichzeitig auf einer begrenzten Anzahl von CPU-Kernen zu simulieren. Promise in Javascript bietet eine bequeme und schnelle Möglichkeit der gleichzeitigen Programmierung sowie eine Reihe von Spezifikationen für die Verarbeitung von Rückgabewerten und Fehlerwerten. Nachdem wir diese Spezifikation verstanden und uns damit vertraut gemacht haben, können wir die Effizienz bei der Bearbeitung gleichzeitiger Aufgaben erheblich verbessern.

Das obige ist der detaillierte Inhalt vonEs ist nicht so schwer! „Promise“ in Javascript verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn