Asynkron JavaScript og event loop
Forstå mønstre inden for asynkron programmering, callbacks, Promises, async/await og Node.js' event loop.
Asynkron JavaScript og event loop er en gratis Bootcamp i backendudvikling med Node.js-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Bootcamp i backendudvikling med Node.js, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Bootcamp i backendudvikling med Node.js-kurset indeholder 4 lektioner i alt.
Hvad er asynkron kode?
Asynkron kode lader Node starte en langsom opgave — for eksempel læsning af en fil eller et netværkskald — og fortsætte med at køre anden kode i stedet for at blokere hovedtråden.
Synkron og asynkron kode forklaret
Tænk på en kok: synkron betyder at stå og vente, mens vandet koger; asynkron betyder at hakke grøntsager imens. Node laver mad som den asynkrone kok.
Callback-mønsteret
Callbacks er funktioner, du sender med for at blive kørt senere — den klassiske måde at håndtere asynkront arbejde på. Når opgaven er færdig, kaldes din callback med resultatet eller fejlen.
En enkel callback i praksis
setTimeout er en typisk asynkron operation: Den venter i et bestemt tidsrum og udløser derefter den callback, du gav den.
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...");Udfordringen ved callback-helvede
Når mange afhængige callbacks indlejres, opstår Callback Hell — kode med dyb indrykning, som er svær at læse, og hvor fejlhåndtering og vedligeholdelse bliver et mareridt.
Introduktion til Promises
Et Promise repræsenterer en værdi, der kommer nu, senere eller aldrig. Det befinder sig i én af tre tilstande: afventende, opfyldt eller afvist.
Brug af Promises
Håndtér et Promise med .then() ved succes og .catch() ved fejl — det giver en renere kæde end indlejrede 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 for tydelighed
async/await er syntaks oven på Promises, som får asynkron kode til at ligne synkron kode. await sætter udførelsen på pause inde i en async-funktion, indtil Promise'et er afgjort.
Async/await i praksis
Se, hvordan async/await gør det foregående eksempel fladere — og hvordan en almindelig try...catch håndterer fejl direkte på stedet.
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ændelsesløkke
Hændelsesløkken er Nodes motor: Når kaldestakken er tom, henter den callbacks fra køen og kører dem — hvilket driver ikke-blokerende I/O på en enkelt tråd.
Kontrol af asynkrone begreber
Hvilket af følgende beskriver bedst den primære fordel ved at bruge asynkron programmering i Node.js?
Opsummering: Async og hændelsesløkken
Asynkront arbejde er grundlaget for Nodes styrke: callbacks satte det i gang, Promises strukturerede det, async/await ryddede op i det, og hændelsesløkken driver det hele.
Lær JavaScript med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 22
- Lektioner
- 92
Ofte stillede spørgsmål
Er lektionen “Asynkron JavaScript og event loop” gratis?
Ja — hele teksten til “Asynkron JavaScript og event loop” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Bootcamp i backendudvikling med Node.js-kurset, skal du opgradere til CoddyKit PRO. Bootcamp i backendudvikling med Node.js-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Asynkron JavaScript og event loop”?
Forstå mønstre inden for asynkron programmering, callbacks, Promises, async/await og Node.js' event loop. Du øver dig i Bootcamp i backendudvikling med Node.js med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Bootcamp i backendudvikling med Node.js?
Der kræves ingen tidligere erfaring. Bootcamp i backendudvikling med Node.js på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “Asynkron JavaScript og event loop”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Bootcamp i backendudvikling med Node.js-lektion?
Ja. Alle Bootcamp i backendudvikling med Node.js-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Introduktion til Node.js og NPM
- Node.js' modulsystem forklaret
- Asynkron JavaScript og event loop
- Arbejde med filsystemet og streams