Heim > Web-Frontend > js-Tutorial > Hauptteil

Asynchrone Schleifen in JavaScript: for...of vs forEach

PHPz
Freigeben: 2024-08-29 10:33:21
Original
560 Leute haben es durchsucht

Async Loops in JavaScript: for...of vs forEach

Die asynchronen Funktionen von JavaScript sind ziemlich cool? Aber die Wahl der richtigen Schleife zur Bewältigung dieser asynchronen Aufgaben kann einen großen Unterschied machen. Lassen Sie uns den Unterschied zwischen for...of und forEach mit einer Prise Spaß aufschlüsseln ?

1. for...of-Schleife mit Async-Funktionen
Stellen Sie sich die for...of-Schleife als Ihren äußerst fleißigen Freund vor, der geduldig darauf wartet, dass Sie eine Aufgabe erledigen, bevor er mit der nächsten beginnt. Es ist, als würde man darauf warten, dass der Kaffee fertig ist, bevor man mit der nächsten Aufgabe beginnt.

for (const item of items) {
  await doSomethingAsync(item);
}
Nach dem Login kopieren

Angenommen, Sie haben eine Reihe von Aufgaben, die jeweils mit einer Verzögerung ein gelöstes Versprechen zurückgeben:

function doSomethingAsync(item) {
  return new Promise((resolve) => {
    setTimeout(() => resolve(`Processed ${item}`), 1000);
  });
}

async function processItemsSequentially(items) {
  for (const item of items) {
    try {
      const result = await doSomethingAsync(item);
      console.log(result);
    } catch (error) {
      console.error(`Oops! Error with ${item}:`, error);
    }
  }
}

const items = ['Task 1', 'Task 2', 'Task 3'];
processItemsSequentially(items);
Nach dem Login kopieren

processItemsSequentially wartet auf den Abschluss jedes doSomethingAsync-Aufrufs, bevor mit dem nächsten Element fortgefahren wird.

Warum Sie es lieben werden:

?️ Geduld: Es wartet, bis jede asynchrone Aufgabe abgeschlossen ist, bevor es fortfährt. Es geht um dieses geordnete Leben.

? Fehlerbehandlung: Sie können Fehler innerhalb der Schleife leicht erkennen und behandeln.

? Perfekt für: Wenn Sie Dinge in Ordnung bringen müssen – zum Beispiel beim Kochen einer Mahlzeit, bei der Sie den Kuchen nicht backen können, bevor Sie den Teig gemischt haben. XD.


2. forEach mit Async-Funktionen
Auf der anderen Seite ist forEach wie ein Haufen Freunde, die alle gleichzeitig mit ihren Aufgaben beginnen. Sie sind aufgeregt und wollen so schnell wie möglich fertig werden. Es ist ihnen egal, ob eine Person vor den anderen fertig wird; Sie machen es einfach!

items.forEach(async (item) => {
  await doSomethingAsync(item);
});
Nach dem Login kopieren

Lassen Sie uns dieselbe doSomethingAsync-Funktion verwenden, aber mit forEach:

async function processItemsConcurrently(items) {
  items.forEach(async (item) => {
    try {
      const result = await doSomethingAsync(item);
      console.log(result);
    } catch (error) {
      console.error(`Whoops! Issue with ${item}:`, error);
    }
  });
}

const items = ['Task A', 'Task B', 'Task C'];
processItemsConcurrently(items);
Nach dem Login kopieren

processItemsConcurrently startet alle doSomethingAsync-Aufrufe gleichzeitig, sodass alle Aufgaben parallel ausgeführt werden.

Warum es Spaß macht:

?‍♂️?‍♀️ Parallele Ausführung: Alle Aufgaben beginnen auf einmal, was superschnell, aber etwas chaotisch sein kann.

✂️ Einfachere Syntax: Oft kürzer und prägnanter als für...of.

? Perfekt für: Wenn Aufgaben nicht voneinander abhängig sind und unabhängig voneinander ausgeführt werden können, z. B. das Abrufen von Daten von mehreren APIs.

Denken Sie daran:
denn...of ist dein ordentlicher Freund, der darauf wartet, bis er an die Reihe kommt.
Bei forEach geht es darum, gleichzeitig einzuspringen und Dinge schnell zu erledigen.

for...of ermöglicht es Ihnen, Fehler einzeln zu erkennen, was sauber und ordentlich ist.
Mit forEach können Sie Fehler im Handumdrehen beheben, wie zum Beispiel das Jonglieren mit mehreren Bällen.

for...of ist vielleicht etwas langsamer, aber es ist sauber und ordentlich.
forEach kann schneller sein, wenn Sie mit dem Chaos klarkommen und sich die Aufgaben nicht überschneiden.

Wählen Sie die Schleife, die Ihren Bedürfnissen entspricht, je nachdem, ob Sie Ordnung und Geduld oder Geschwindigkeit und Spannung benötigen! ??

Das obige ist der detaillierte Inhalt vonAsynchrone Schleifen in JavaScript: for...of vs forEach. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage