Bootcamp i backendutveckling med Node.js · Lektion

Asynkron JavaScript och händelseloopen

Förstå mönster för asynkron programmering, callbacks, Promises, async/await och Node.js händelseloop.

Lektion 3 av 412 steg

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.

Gratis att börja

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

  1. Introduktion till Node.js och NPM
  2. Node.js modulsystem förklarat
  3. Asynkron JavaScript och händelseloopen
  4. Arbeta med filsystemet och strömmar
← Tillbaka till Bootcamp i backendutveckling med Node.js