FAGPORTALEN

Asynkron programmering i JS

Computerspace · FGU · Programmering i JavaScript

⚡ Hvad er asynkron programmering i JavaScript?

JavaScript er single-threaded – det kan kun gøre én ting ad gangen. Asynkron programmering løser problemet med langsom I/O (netværk, filer) uden at blokere.

Event Loop – JavaScripts hemmelighed:

```

JavaScript har én tråd, men bruger Event Loop til at håndtere asynkron kode:

1. Synkron kode kører

2. Asynkrone callbacks placeres i kø

3. Når call stack er tom, kører callbacks fra køen

```

Callbacks – den gamle metode:

```javascript

// Callback – funktion der kaldes når noget er færdigt

setTimeout(() => {

console.log("2 sekunder gik");

}, 2000);

// Callback hell – svær at læse

hentBruger(id, (bruger) => {

hentOrdrer(bruger.id, (ordrer) => {

hentDetaljer(ordrer[0].id, (detaljer) => {

console.log(detaljer); // Dybt nestet!

});

});

});

```

Promises – den bedre metode:

```javascript

fetch("https://jsonplaceholder.typicode.com/posts/1")

.then(response => response.json()) // Konverter til JSON

.then(data => console.log(data)) // Brug data

.catch(error => console.error(error)) // Håndter fejl

.finally(() => console.log("Færdig")); // Kør altid til sidst

```

Async/await – den læsbare metode:

```javascript

async function hentPost(id) {

try {

const response = await fetch(https://jsonplaceholder.typicode.com/posts/${id});

if (!response.ok) {

throw new Error(HTTP fejl: ${response.status});

}

const data = await response.json();

return data;

} catch (error) {

console.error("Fejl:", error.message);

}

}

// Kald async funktionen

const post = await hentPost(1);

console.log(post.title);

```

Parallel asynkron kode:

```javascript

// Hent to ressourcer parallelt

const [post, bruger] = await Promise.all([

fetch("https://api.example.com/posts/1").then(r => r.json()),

fetch("https://api.example.com/users/1").then(r => r.json())

]);

```

---

🎓 Læringsmål for Asynkron programmering i JS

Læringsmål

Sådan kan du arbejde med emnet

⚠️ Typiske fejl at undgå

---

💡 Tips til at komme i gang

Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.

Prøv Fagportalen gratis

🤖 Denne side er skrevet med kunstig intelligens og fagligt gennemgået af Fagportalen, som har det redaktionelle ansvar. Finder du en fejl, så skriv til support@fagportalen.dk.