Asynkron JavaScript och händelseloopen
Förstå mönster för asynkron programmering, callbacks, Promises, async/await och Node.js händelseloop.
Asynkron JavaScript och händelseloopen är en gratis lektion i Bootcamp i backendutveckling med Node.js på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Bootcamp i backendutveckling med Node.js, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Bootcamp i backendutveckling med Node.js innehåller totalt 4 lektioner.
Vad är asynkron kod?
Asynkron kod låter Node starta en långsam uppgift – som att läsa en fil eller göra ett nätverksanrop – och fortsätta köra annan kod i stället för att blockera huvudtråden.
Synkront och asynkront – en förklaring
Tänk på en kock: synkront innebär att stå sysslolös medan vattnet kokar; asynkront innebär att hacka grönsaker under tiden. Node arbetar som den asynkrona kocken.
Callback-mönstret
Callbacks är funktioner som du skickar med för att köras senare – det klassiska sättet att hantera asynkront arbete. När uppgiften är klar anropas din callback med resultatet eller felet.
En enkel callback i praktiken
setTimeout är en typisk asynkron operation: den väntar en angiven tid och anropar sedan callbacken som du skickade med.
function greet(name, callback) {
setTimeout(() => {
const message = `Hello, ${name}!`;
callback(message);
}, 1000); // Wait 1 second
}
function displayMessage(msg) {
console.log(msg);
}
greet("Coddy", displayMessage);
console.log("Waiting for greeting...");Utmaningen med callback hell
När många beroende callbacks nästlas uppstår Callback Hell – djupt indenterad, svårläst kod där felhantering och underhåll blir en mardröm.
Introduktion till Promises
En Promise representerar ett värde som kommer nu, senare eller aldrig. Den befinner sig i ett av tre tillstånd: pending, fulfilled eller rejected.
Använda Promises
Hantera en Promise med .then() vid lyckat resultat och .catch() vid fel – en renare kedjning än nästlade callbacks.
function fetchData(shouldSucceed) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (shouldSucceed) {
resolve("Data fetched successfully!");
} else {
reject("Failed to fetch data.");
}
}, 1000);
});
}
fetchData(true)
.then(data => console.log(data))
.catch(error => console.error(error));
fetchData(false)
.then(data => console.log(data))
.catch(error => console.error(error));Async/await för tydligare kod
async/await är syntax ovanpå Promises som får asynkron kod att likna synkron kod. await pausar inuti en async-funktion tills Promisen är färdig.
Async/await i praktiken
Se hur async/await plattar ut det föregående exemplet – och hur en vanlig try...catch hanterar fel direkt på plats.
function delayedMessage(msg, delay) {
return new Promise(resolve => {
setTimeout(() => resolve(msg), delay);
});
}
async function processMessages() {
try {
console.log("Starting process...");
const msg1 = await delayedMessage("First message!", 1000);
console.log(msg1);
const msg2 = await delayedMessage("Second message!", 500);
console.log(msg2);
console.log("Process finished.");
} catch (error) {
console.error("An error occurred:", error);
}
}
processMessages();Node.js händelseslinga
Event Loop är Nodes motor: när anropsstacken är tom hämtar den köade callbacks och kör dem – vilket möjliggör icke-blockerande I/O i en enda tråd.
Test av asynkrona koncept
Vilket av följande beskriver bäst den främsta fördelen med att använda asynkron programmering i Node.js?
Sammanfattning: asynkron kod och händelseslingan
Asynkront arbete är grunden för Nodes räckvidd: callbacks inledde utvecklingen, Promises strukturerade den, async/await gjorde den tydligare och Event Loop driver allt.
Lär dig JavaScript med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 22
- Lektioner
- 92
Vanliga frågor
Är lektionen ”Asynkron JavaScript och händelseloopen” gratis?
Ja – hela texten till ”Asynkron JavaScript och händelseloopen” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Bootcamp i backendutveckling med Node.js, kan Ni uppgradera till CoddyKit PRO. Kursen i Bootcamp i backendutveckling med Node.js innehåller totalt 4 lektioner.
Vad lär jag mig i ”Asynkron JavaScript och händelseloopen”?
Förstå mönster för asynkron programmering, callbacks, Promises, async/await och Node.js händelseloop. Ni övar på Bootcamp i backendutveckling med Node.js med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Bootcamp i backendutveckling med Node.js?
Du behöver inga förkunskaper. Utbildningen i Bootcamp i backendutveckling med Node.js på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.
Hur lång tid tar lektionen ”Asynkron JavaScript och händelseloopen”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Bootcamp i backendutveckling med Node.js-lektionen?
Ja. Varje Bootcamp i backendutveckling med Node.js-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Introduktion till Node.js och NPM
- Node.js modulsystem förklarat
- Asynkron JavaScript och händelseloopen
- Arbeta med filsystemet och strömmar