Hå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().
1234567891011121314151617const 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. });
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.js
index.css
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?
- Unngå callback-helvete: Promises gir en ryddigere og mer lesbar måte å håndtere asynkrone operasjoner på enn dypt nøstede callbacks;
- Feilhåndtering: Promises tilbyr innebygd feilhåndtering med
.catch(), noe som gjør det enkelt å håndtere avviste operasjoner; - 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?
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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
Hå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().
1234567891011121314151617const 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. });
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.js
index.css
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?
- Unngå callback-helvete: Promises gir en ryddigere og mer lesbar måte å håndtere asynkrone operasjoner på enn dypt nøstede callbacks;
- Feilhåndtering: Promises tilbyr innebygd feilhåndtering med
.catch(), noe som gjør det enkelt å håndtere avviste operasjoner; - 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?
Takk for tilbakemeldingene dine!