Heim > Web-Frontend > js-Tutorial > Hauptteil

asynchron / warten

Barbara Streisand
Freigeben: 2024-10-10 06:24:30
Original
848 Leute haben es durchsucht

async / await

asynchron / warten

async/await ist im Vergleich zu Promises eine neuere Art, asynchronen Code zu schreiben. Die Hauptvorteile von async/await sind eine verbesserte Lesbarkeit und die Vermeidung von Promise Chaining. Versprechen können lang und schwer lesbar werden und tief verschachtelte Rückrufe enthalten, die schwer zu debuggen sind.

Beispiel

Erinnern Sie sich an unseren Abruf von früher.

fetch('https://jsonplaceholder.typicode.com/todos/1')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error))
  .finally(() => console.log('All done'));
Nach dem Login kopieren

Mit async/await kann der Code so umgestaltet werden, dass er wie folgt aussieht:

async function fetchData() {
  try {
    const response = await fetch('https://jsonplaceholder.typicode.com/todos/1');
    const data = await response.json();
    console.log(data);
  } catch (error) {
    console.error('Error:', error);
  } finally {
    console.log('All done');
  }
}

fetchData();
Nach dem Login kopieren

Auch wenn es möglicherweise ein paar Zeilen mehr Code sind, ist diese Version einfacher zu lesen, da sie einer normalen synchronen Funktion ähnelt. Wenn die Funktionen in den .then()-Anweisungen außerdem komplexer wären, wären die Lesbarkeit und die Debugbarkeit noch stärker beeinträchtigt. Das Async/Await-Beispiel ist viel klarer.

Beispiel 2: Essen in einem Restaurant bestellen

Struktur von async/await

Eine Async/Await-Funktion besteht aus zwei wesentlichen Teilen: Async und Wait. Das Schlüsselwort „async“ wird vor einer Funktionsdeklaration hinzugefügt und „await“ wird verwendet, wenn eine asynchrone Aufgabe beginnt.

Lassen Sie uns dies anhand eines Beispiels einer Essensbestellung in einem Restaurant veranschaulichen:

// Simulate the order process with async/await
async function foodOrder() {
  console.log("Ordering food...");
  await new Promise(resolve => setTimeout(resolve, 2000)); // Wait 2 seconds for food to be prepared
  return "Your food is ready!";
}

// Simulate the eating process
function eatFood(order) {
  console.log(order); // This logs "Your food is ready!"
  console.log("Enjoying the meal!");
}

// Simulate continuing the conversation
function continueConversation() {
  console.log("While waiting, you continue chatting with friends...");
}

async function orderFood() {
  console.log("You've arrived at the restaurant.");
  const order = await foodOrder(); // Place the order and wait for it to be ready
  continueConversation(); // Chat while waiting
  eatFood(order); // Eat the food once it arrives
}

orderFood();
Nach dem Login kopieren

Die Ausgabe erfolgt

You've arrived at the restaurant.
Ordering food...
While waiting, you continue chatting with friends...
Your food is ready!
Enjoying the meal!
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonasynchron / warten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage