Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Håndtering af Asynkrone Operationer med Promises | Asynkron JavaScript og API-Integration
Avanceret JavaScript-Mestring

bookHåndtering af Asynkrone Operationer med Promises

Hvad er et Promise?

Et Promise er en pladsholder for en fremtidig værdi, som kan være:

Et promise starter som pending og afsluttes permanent som enten fulfilled med en værdi eller rejected med en årsag.

Forståelse af resolve-, reject- og then()-metoderne

Oprettelse af et Promise

For at oprette et Promise skal du videregive en funktion med to parametre: resolve og reject. Disse parametre er funktioner, der bruges til at angive, om den asynkrone operation er gennemført med succes eller fejlet.

const myPromise = new Promise((resolve, reject) => {
  const success = true; // Simulate whether the task is successful

  if (success) {
    resolve('Task completed successfully!');
  } else {
    reject('Task failed.');
  }
});
  • resolve(value): Marker Promise som opfyldt (succesfuld) og videregiver resultatet (value);
  • reject(error): Marker Promise som afvist (fejlet) og videregiver fejlen.

Brug af then() til at håndtere opfyldte Promises:

Når et Promise er oprettet, kan du håndtere resultatet ved hjælp af then()-metoden. Denne metode kaldes, når Promise er opfyldt (resolved).

myPromise.then(result => {
  console.log(result); // Output: Task completed successfully!
});

I dette eksempel modtager then()-metoden værdien, der sendes til resolve(), og udfører callback-funktionen med resultatet. Den kører kun, hvis Promisen bliver løst succesfuldt.

Fejlhåndtering med .catch()

Promises tilbyder en enkel metode til fejlhåndtering gennem .catch()-metoden. Hvis en Promise bliver afvist (fejler), opfanges og håndteres fejlen i .catch().

1234567891011121314151617
const myPromise = new Promise((resolve, reject) => { const success = false; // Simulate a failure if (success) { resolve('Task completed successfully!'); } else { reject('Task failed.'); } }); myPromise .then(result => { console.log(result); }) .catch(error => { console.error('Error:', error); // Output: Error: Task failed. });
copy

catch()-metoden bruges til at håndtere fejl, når Promise afvises. Den opfanger fejlen, der sendes med reject(), og giver dig mulighed for at håndtere fejlsituationer.

Kædning af Promises til sekventielle asynkrone operationer

En af de vigtigste fordele ved Promises er muligheden for at kæde dem sammen, hvilket gør det muligt at håndtere flere asynkrone operationer i rækkefølge uden at ende i callback-helvede. Hver then() returnerer et nyt Promise, hvilket gør det muligt at kæde flere then()-kald i en sekvens, hvor resultaterne vises i HTML'en, efterhånden som hver Promise opfyldes.

index.html

index.html

index.js

index.js

index.css

index.css

copy

Sekventielle operationer: Hver then() returnerer et nyt Promise, der videregiver resultatet fra én operation til den næste. Dette muliggør en ren, lineær sekvens af asynkrone operationer, som opdaterer den viste tekst i HTML.

Fejlhåndtering: Metoden .catch() håndterer enhver fejl, der opstår under nogen af Promise-afgørelserne. Dette sikrer, at fejl opfanges og vises på siden, uanset hvor de opstår i kæden.

Hvorfor bruge Promises?

  1. Undgåelse af callback-helvede: Promises tilbyder en mere overskuelig og læsbar måde at håndtere asynkrone operationer på end dybt indlejrede callbacks;
  2. Fejlhåndtering: Promises har indbygget fejlhåndtering med .catch(), hvilket gør det nemt at håndtere afviste operationer;
  3. Sekventiel kædning: Promises gør det muligt at køre flere asynkrone operationer i rækkefølge ved hjælp af kædning, hvilket gør koden lettere at følge og vedligeholde.

1. Hvad er et Promise?

2. I den følgende kode, hvad vil .catch() gøre, hvis der opstår en fejl i en af .then()-tilbagekaldsfunktionerne?

question mark

Hvad er et Promise?

Select the correct answer

question mark

I den følgende kode, hvad vil .catch() gøre, hvis der opstår en fejl i en af .then()-tilbagekaldsfunktionerne?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 3

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Suggested prompts:

What are some real-world examples of using Promises in JavaScript?

Can you explain the difference between callbacks and Promises?

How do you chain multiple Promises together?

Awesome!

Completion rate improved to 2.22

bookHåndtering af Asynkrone Operationer med Promises

Stryg for at vise menuen

Hvad er et Promise?

Et Promise er en pladsholder for en fremtidig værdi, som kan være:

Et promise starter som pending og afsluttes permanent som enten fulfilled med en værdi eller rejected med en årsag.

Forståelse af resolve-, reject- og then()-metoderne

Oprettelse af et Promise

For at oprette et Promise skal du videregive en funktion med to parametre: resolve og reject. Disse parametre er funktioner, der bruges til at angive, om den asynkrone operation er gennemført med succes eller fejlet.

const myPromise = new Promise((resolve, reject) => {
  const success = true; // Simulate whether the task is successful

  if (success) {
    resolve('Task completed successfully!');
  } else {
    reject('Task failed.');
  }
});
  • resolve(value): Marker Promise som opfyldt (succesfuld) og videregiver resultatet (value);
  • reject(error): Marker Promise som afvist (fejlet) og videregiver fejlen.

Brug af then() til at håndtere opfyldte Promises:

Når et Promise er oprettet, kan du håndtere resultatet ved hjælp af then()-metoden. Denne metode kaldes, når Promise er opfyldt (resolved).

myPromise.then(result => {
  console.log(result); // Output: Task completed successfully!
});

I dette eksempel modtager then()-metoden værdien, der sendes til resolve(), og udfører callback-funktionen med resultatet. Den kører kun, hvis Promisen bliver løst succesfuldt.

Fejlhåndtering med .catch()

Promises tilbyder en enkel metode til fejlhåndtering gennem .catch()-metoden. Hvis en Promise bliver afvist (fejler), opfanges og håndteres fejlen i .catch().

1234567891011121314151617
const myPromise = new Promise((resolve, reject) => { const success = false; // Simulate a failure if (success) { resolve('Task completed successfully!'); } else { reject('Task failed.'); } }); myPromise .then(result => { console.log(result); }) .catch(error => { console.error('Error:', error); // Output: Error: Task failed. });
copy

catch()-metoden bruges til at håndtere fejl, når Promise afvises. Den opfanger fejlen, der sendes med reject(), og giver dig mulighed for at håndtere fejlsituationer.

Kædning af Promises til sekventielle asynkrone operationer

En af de vigtigste fordele ved Promises er muligheden for at kæde dem sammen, hvilket gør det muligt at håndtere flere asynkrone operationer i rækkefølge uden at ende i callback-helvede. Hver then() returnerer et nyt Promise, hvilket gør det muligt at kæde flere then()-kald i en sekvens, hvor resultaterne vises i HTML'en, efterhånden som hver Promise opfyldes.

index.html

index.html

index.js

index.js

index.css

index.css

copy

Sekventielle operationer: Hver then() returnerer et nyt Promise, der videregiver resultatet fra én operation til den næste. Dette muliggør en ren, lineær sekvens af asynkrone operationer, som opdaterer den viste tekst i HTML.

Fejlhåndtering: Metoden .catch() håndterer enhver fejl, der opstår under nogen af Promise-afgørelserne. Dette sikrer, at fejl opfanges og vises på siden, uanset hvor de opstår i kæden.

Hvorfor bruge Promises?

  1. Undgåelse af callback-helvede: Promises tilbyder en mere overskuelig og læsbar måde at håndtere asynkrone operationer på end dybt indlejrede callbacks;
  2. Fejlhåndtering: Promises har indbygget fejlhåndtering med .catch(), hvilket gør det nemt at håndtere afviste operationer;
  3. Sekventiel kædning: Promises gør det muligt at køre flere asynkrone operationer i rækkefølge ved hjælp af kædning, hvilket gør koden lettere at følge og vedligeholde.

1. Hvad er et Promise?

2. I den følgende kode, hvad vil .catch() gøre, hvis der opstår en fejl i en af .then()-tilbagekaldsfunktionerne?

question mark

Hvad er et Promise?

Select the correct answer

question mark

I den følgende kode, hvad vil .catch() gøre, hvis der opstår en fejl i en af .then()-tilbagekaldsfunktionerne?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 3
some-alt