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.
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

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);
});

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);
});

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);
});

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");
});

Ö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);
});

Quiz om Promise-felhantering
Snabb kontroll: Var ska fel hanteras?

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.

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