Heim > Web-Frontend > js-Tutorial > Async-Tricks in JavaScript für reibungsloseren Code

Async-Tricks in JavaScript für reibungsloseren Code

Mary-Kate Olsen
Freigeben: 2024-10-22 14:28:02
Original
509 Leute haben es durchsucht

Während wir uns in der Welt von JavaScript bewegen, ist es für die Erstellung reaktionsfähiger Webanwendungen von entscheidender Bedeutung, seine asynchrone Natur zu verstehen. Obwohl Versprechen ein großartiges Werkzeug sind, reichen sie bei komplexeren Szenarien oft nicht aus. In diesem Beitrag befassen wir uns mit erweiterten asynchronen Mustern, die Ihre JavaScript-Kenntnisse verbessern.

Generatoren und Ertrag für Async-Steuerung

Generatoren sind eine besondere Art von Funktion, mit der Sie die Ausführung anhalten und Zwischenergebnisse zurückgeben können. Dies kann besonders nützlich sein, um asynchrone Flüsse zu steuern.

Beispiel:

function* asyncGenerator() {
    const data1 = yield fetchData1(); // Pause until data1 is available
    const data2 = yield fetchData2(data1); // Pause until data2 is available
    return processData(data1, data2); // Final processing
}

const generator = asyncGenerator();

async function handleAsync() {
    const result1 = await generator.next(); // Fetch first data
    const result2 = await generator.next(result1.value); // Fetch second data
    const finalResult = await generator.next(result2.value); // Process final result
    console.log(finalResult.value);
}

handleAsync();
Nach dem Login kopieren

Asynchrone Iteratoren

Asynchrone Iteratoren ermöglichen die effiziente Verarbeitung asynchroner Datenströme, sodass Sie Daten bei ihrem Eintreffen verarbeiten können, ohne den Hauptthread zu blockieren.

Beispiel:

async function* fetchAPIData(url) {
    const response = await fetch(url);
    const data = await response.json();

    for (const item of data) {
        yield item; // Yield each item as it arrives
    }
}

async function processAPIData() {
    for await (const item of fetchAPIData('https://api.example.com/data')) {
        console.log(item); // Process each item as it comes
    }
}

processAPIData();
Nach dem Login kopieren

Parallelität mit Promise.allSettled

Promise.allSettled ermöglicht es Ihnen, auf die Abwicklung aller Versprechen zu warten, unabhängig von ihrem Ergebnis (gelöst oder abgelehnt). Dies ist nützlich für Szenarien, in denen Sie Aktionen basierend auf den Ergebnissen mehrerer asynchroner Vorgänge ausführen möchten.

Beispiel:

const promise1 = Promise.resolve(1);
const promise2 = Promise.reject(new Error('Failed'));
const promise3 = Promise.resolve(3);

Promise.allSettled([promise1, promise2, promise3]).then((results) => {
    results.forEach((result) => {
        if (result.status === 'fulfilled') {
            console.log('Result:', result.value);
        } else {
            console.error('Error:', result.reason);
        }
    });
});
Nach dem Login kopieren

Web-Worker

Web Worker bieten eine Möglichkeit, JavaScript in Hintergrundthreads auszuführen, sodass CPU-intensive Aufgaben bearbeitet werden können, ohne dass die Benutzeroberfläche einfriert. Dies ist entscheidend für die Aufrechterhaltung eines reibungslosen Benutzererlebnisses in Ihren Anwendungen.

Beispiel:

// worker.js
self.onmessage = function(e) {
    const result = heavyComputation(e.data); // Perform heavy computation
    self.postMessage(result); // Send the result back to the main thread
};

// main.js
const worker = new Worker('worker.js');

worker.onmessage = function(e) {
    console.log('Result from worker:', e.data);
};

// Start the worker with data
worker.postMessage(inputData);
Nach dem Login kopieren

Am Ende

Wenn Sie diese erweiterten asynchronen Muster beherrschen, können Sie effizienteren, wartbareren und reaktionsschnelleren JavaScript-Code schreiben. Durch die Integration von Generatoren, Async-Iteratoren, Promise.allSettled und Web Workern können Sie die Leistung und Benutzererfahrung Ihrer Anwendungen erheblich verbessern. Machen Sie sich diese Techniken zunutze und beobachten Sie, wie Ihre JavaScript-Kenntnisse sich verbessern!


Meine persönliche Website: https://shafayet.zya.me


Ein Meme für dich?

Async Tricks in JavaScript for Smoother Code

Das obige ist der detaillierte Inhalt vonAsync-Tricks in JavaScript für reibungsloseren Code. 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