Nebenläufigkeit und Asynchrone Programmierung

Geschätzte Lektüre: 3 Minuten 395 Ansichten

Nebenläufigkeit ist in modernen Anwendungen essentiell, da sie die effiziente Nutzung von Systemressourcen und die Verbesserung der Benutzererfahrung ermöglicht. JavaScript implementiert ein Event-Loop-basiertes Concurrency-Modell, das sich von traditionellen Thread-basierten Ansätzen unterscheidet:

// Callback-basierte Asynchronität
function loadData(callback) {
    setTimeout(() => {
        callback(null, "Daten geladen");
    }, 1000);
}

loadData((error, data) => {
    if (error) {
        console.error("Fehler:", error);
    } else {
        console.log(data);
    }
});

// Promise-basierte Asynchronität
function fetchData() {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            const success = Math.random() > 0.3;
            if (success) {
                resolve("API-Daten erfolgreich geladen");
            } else {
                reject(new Error("Netzwerkfehler"));
            }
        }, 1500);
    });
}

// Promise-Verwendung
fetchData()
    .then(data => console.log(data))
    .catch(error => console.error("Fehler:", error.message));

// Async/Await (ES2017)
async function processData() {
    try {
        const data = await fetchData();
        const processed = data.toUpperCase();
        console.log("Verarbeitet:", processed);
        return processed;
    } catch (error) {
        console.error("Verarbeitung fehlgeschlagen:", error.message);
        throw error;
    }
}

// Parallele Ausführung
async function loadMultipleResources() {
    try {
        const [user, posts, comments] = await Promise.all([
            fetchUser(),
            fetchPosts(),
            fetchComments()
        ]);
        
        return {user, posts, comments};
    } catch (error) {
        console.error("Fehler beim Laden der Ressourcen:", error);
    }
}

Web Workers ermöglichen echte Parallelverarbeitung in JavaScript, indem sie rechenintensive Aufgaben in separate Threads auslagern. Service Workers erweitern dieses Konzept für Progressive Web Apps und ermöglichen Offline-Funktionalität.

Dieses Dokument teilen

Nebenläufigkeit und Asynchrone Programmierung

Oder Link kopieren

INHALT

Abonnieren

×
Cancel