JavaScript Academy · Lektion

Promises — tillstånd, kedjning och felhantering

Skapa och använd Promises: tillstånden pending, fulfilled och rejected, kedjning med then samt felhantering med catch/finally.

Lektion 2 av 38 steg

Promises — tillstånd, kedjning och felhantering är en gratis lektion i JavaScript Academy på CoddyKit. Detta är lektion 2 av 3. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för JavaScript Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i JavaScript Academy innehåller totalt 3 lektioner.

Introduktion till Promises

Mål: Lär er enkla Promise-mönster.

  • 상태: pending → fulfilled/rejected
  • then-kedjor
  • catch-fel
  • finally för städning
Promises — tillstånd, kedjning och felhantering — illustration 1

Lös en Promise

En Promise börjar som pending och blir fulfilled när resolve anropas.

// Create a Promise and resolve it
function waitMs(ms) {
  return new Promise(function (resolve) {
    setTimeout(function () {
      resolve("done");
    }, ms);
  });
}

console.log("Start");
waitMs(10).then(function (msg) {
  console.log("Resolved:", msg);
});
Promises — tillstånd, kedjning och felhantering — illustration 2

Avvisa och fånga

Använd reject(Error) vid fel. En catch hanterar alla avvisningar ovanför sig.

// Reject to signal an error; handle with catch
function maybeFail(ok) {
  return new Promise(function (resolve, reject) {
    if (ok) {
      resolve("ok");
    } else {
      reject(new Error("bad"));
    }
  });
}

maybeFail(true)
  .then(function (v) {
    console.log("A:", v);
    return maybeFail(false);
  })
  .catch(function (e) {
    console.log("Caught:", e.message);
  });
Promises — tillstånd, kedjning och felhantering — illustration 3

Grunderna i then-kedjor

Varje then kan returnera ett värde (eller en Promise). Nästa steg tar emot det.

// Chain then steps; return values flow to the next then
Promise.resolve(2)
  .then(function (n) {
    return n * 3;
  })
  .then(function (n) {
    console.log("Result:", n);
  });
Promises — tillstånd, kedjning och felhantering — illustration 4

finally för städning

finally används för städning efter lyckat resultat eller fel; den tar inte emot värdet eller felet.

// finally runs whether fulfilled or rejected
function task(ok) {
  return new Promise(function (resolve, reject) {
    ok ? resolve("yay") : reject(new Error("oops"));
  });
}

task(false)
  .catch(function (e) {
    console.log("Handled:", e.message);
  })
  .finally(function () {
    console.log("Cleanup done");
  });
Promises — tillstånd, kedjning och felhantering — illustration 5

Översikt av Promise.all

Promise.all löser sig med en array av resultat eller avvisas om ett av dem misslyckas.

// Promise.all waits for all; rejects fast if any fail
const a = waitMs(5);
const b = Promise.resolve("B");

Promise.all([a, b])
  .then(function (values) {
    console.log("All:", values);
  })
  .catch(function (e) {
    console.log("All failed:", e.message);
  });
Promises — tillstånd, kedjning och felhantering — illustration 6

Quiz om Promise-felhantering

Snabb kontroll: Var ska fel hanteras?

Promises — tillstånd, kedjning och felhantering — illustration 7

Sammanfattning

Sammanfattning: Använd resolve vid lyckat resultat, reject vid fel, kedja steg med then, hantera problem med catch och använd finally för städning.

Promises — tillstånd, kedjning och felhantering — illustration 8
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
59
Lektioner
200

Vanliga frågor

Är lektionen ”Promises — tillstånd, kedjning och felhantering” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen JavaScript Academy, inklusive ”Promises — tillstånd, kedjning och felhantering”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i JavaScript Academy innehåller totalt 3 lektioner.

Vad lär jag mig i ”Promises — tillstånd, kedjning och felhantering”?

Skapa och använd Promises: tillstånden pending, fulfilled och rejected, kedjning med then samt felhantering med catch/finally. Ni övar på JavaScript Academy 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 JavaScript Academy?

Du behöver inga förkunskaper. Utbildningen i JavaScript Academy 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 2 av 3.

Hur lång tid tar lektionen ”Promises — tillstånd, kedjning och felhantering”?

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 JavaScript Academy-lektionen?

Ja. Varje JavaScript Academy-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. Eventloopen och grunderna i task kontra microtask
  2. Promises — tillstånd, kedjning och felhantering
  3. Promise.all / any / race / allSettled — välj rätt verktyg
← Tillbaka till JavaScript Academy