Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Håndtering av asynkrone operasjoner med løfter | Asynkron JavaScript og API-integrasjon
Avansert JavaScript-mestring

bookHåndtering av asynkrone operasjoner med løfter

Hva er et Promise?

Et Promise er en plassholder for en fremtidig verdi, som kan være:

Et promise starter som pending og blir permanent enten fulfilled med en verdi eller rejected med en grunn.

Forstå resolve-, reject- og then()-metodene

Opprette et Promise

For å opprette et Promise, sender du inn en funksjon med to parametere: resolve og reject. Disse parameterne er funksjoner som brukes til å indikere om den asynkrone operasjonen har blitt fullført med suksess eller har feilet.

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 oppfylt (vellykket) og sender resultatet (value);
  • reject(error): Marker Promise som avvist (feilet) og sender feilen.

Bruke then() for å håndtere oppfylte Promises:

Når et Promise er opprettet, kan du håndtere resultatet ved å bruke then()-metoden. Denne metoden kalles når Promise er oppfylt (løst).

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

I dette eksemplet mottar then()-metoden verdien som sendes til resolve() og utfører tilbakeringingsfunksjonen med resultatet. Den kjøres kun hvis Promise-objektet blir løst (resolved) uten feil.

Feilhåndtering med .catch()

Promises gir en enkel måte å håndtere feil på gjennom .catch()-metoden. Hvis et Promise-objekt blir avvist (rejected), fanges og håndteres feilen inne 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

Metoden catch() brukes for å håndtere feil når Promise blir avvist. Den fanger opp feilen som sendes med reject() og lar deg håndtere feilsituasjoner.

Kjedede Promises for Sekvensielle Asynkrone Operasjoner

En av hovedfordelene med Promises er muligheten til å kjede dem sammen, slik at du kan håndtere flere asynkrone operasjoner i rekkefølge uten å havne i callback hell. Hver then() returnerer et nytt Promise, noe som gjør det mulig å kjede flere then()-kall i en sekvens, med resultatene vist i HTML-en etter hvert som hver Promise blir oppfylt.

index.html

index.html

index.js

index.js

index.css

index.css

copy

Sekvensielle operasjoner: Hver then() returnerer et nytt Promise, og sender resultatet fra én operasjon til den neste. Dette gir en ryddig, lineær sekvens av asynkrone operasjoner som oppdaterer den viste teksten i HTML.

Feilhåndtering: Metoden .catch() håndterer enhver feil som oppstår under noen av Promise-resolusjonene. Dette sikrer at feil blir fanget opp og vist på siden, uansett hvor i kjeden de oppstår.

Hvorfor bruke Promises?

  1. Unngå callback-helvete: Promises gir en ryddigere og mer lesbar måte å håndtere asynkrone operasjoner på enn dypt nøstede callbacks;
  2. Feilhåndtering: Promises tilbyr innebygd feilhåndtering med .catch(), noe som gjør det enkelt å håndtere avviste operasjoner;
  3. Sekvensiell kjeding: Promises lar deg kjøre flere asynkrone operasjoner i rekkefølge ved hjelp av kjeding, noe som gjør koden enklere å følge og vedlikeholde.

1. Hva er et Promise?

2. I følgende kode, hva vil .catch() gjøre hvis det oppstår en feil i en av .then()-tilbakekallingene?

question mark

Hva er et Promise?

Select the correct answer

question mark

I følgende kode, hva vil .catch() gjøre hvis det oppstår en feil i en av .then()-tilbakekallingene?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

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 av asynkrone operasjoner med løfter

Sveip for å vise menyen

Hva er et Promise?

Et Promise er en plassholder for en fremtidig verdi, som kan være:

Et promise starter som pending og blir permanent enten fulfilled med en verdi eller rejected med en grunn.

Forstå resolve-, reject- og then()-metodene

Opprette et Promise

For å opprette et Promise, sender du inn en funksjon med to parametere: resolve og reject. Disse parameterne er funksjoner som brukes til å indikere om den asynkrone operasjonen har blitt fullført med suksess eller har feilet.

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 oppfylt (vellykket) og sender resultatet (value);
  • reject(error): Marker Promise som avvist (feilet) og sender feilen.

Bruke then() for å håndtere oppfylte Promises:

Når et Promise er opprettet, kan du håndtere resultatet ved å bruke then()-metoden. Denne metoden kalles når Promise er oppfylt (løst).

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

I dette eksemplet mottar then()-metoden verdien som sendes til resolve() og utfører tilbakeringingsfunksjonen med resultatet. Den kjøres kun hvis Promise-objektet blir løst (resolved) uten feil.

Feilhåndtering med .catch()

Promises gir en enkel måte å håndtere feil på gjennom .catch()-metoden. Hvis et Promise-objekt blir avvist (rejected), fanges og håndteres feilen inne 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

Metoden catch() brukes for å håndtere feil når Promise blir avvist. Den fanger opp feilen som sendes med reject() og lar deg håndtere feilsituasjoner.

Kjedede Promises for Sekvensielle Asynkrone Operasjoner

En av hovedfordelene med Promises er muligheten til å kjede dem sammen, slik at du kan håndtere flere asynkrone operasjoner i rekkefølge uten å havne i callback hell. Hver then() returnerer et nytt Promise, noe som gjør det mulig å kjede flere then()-kall i en sekvens, med resultatene vist i HTML-en etter hvert som hver Promise blir oppfylt.

index.html

index.html

index.js

index.js

index.css

index.css

copy

Sekvensielle operasjoner: Hver then() returnerer et nytt Promise, og sender resultatet fra én operasjon til den neste. Dette gir en ryddig, lineær sekvens av asynkrone operasjoner som oppdaterer den viste teksten i HTML.

Feilhåndtering: Metoden .catch() håndterer enhver feil som oppstår under noen av Promise-resolusjonene. Dette sikrer at feil blir fanget opp og vist på siden, uansett hvor i kjeden de oppstår.

Hvorfor bruke Promises?

  1. Unngå callback-helvete: Promises gir en ryddigere og mer lesbar måte å håndtere asynkrone operasjoner på enn dypt nøstede callbacks;
  2. Feilhåndtering: Promises tilbyr innebygd feilhåndtering med .catch(), noe som gjør det enkelt å håndtere avviste operasjoner;
  3. Sekvensiell kjeding: Promises lar deg kjøre flere asynkrone operasjoner i rekkefølge ved hjelp av kjeding, noe som gjør koden enklere å følge og vedlikeholde.

1. Hva er et Promise?

2. I følgende kode, hva vil .catch() gjøre hvis det oppstår en feil i en av .then()-tilbakekallingene?

question mark

Hva er et Promise?

Select the correct answer

question mark

I følgende kode, hva vil .catch() gjøre hvis det oppstår en feil i en av .then()-tilbakekallingene?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 3
some-alt