Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Hantering av Asynkrona Operationer med Löften | Asynkron JavaScript och API-integration
Avancerad JavaScript-mästerskap

bookHantering av Asynkrona Operationer med Löften

Vad är ett Promise?

Ett Promise är en platshållare för ett framtida värde, vilket kan vara:

Ett promise börjar som pending och avslutas permanent som antingen fulfilled med ett värde eller rejected med en orsak.

Förstå metoderna resolve, reject och then()

Skapa ett Promise

För att skapa ett Promise skickar du in en funktion med två parametrar: resolve och reject. Dessa parametrar är funktioner som används för att indikera om den asynkrona operationen har slutförts framgångsrikt eller misslyckats.

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): Markerar att Promiset är uppfyllt (lyckat) och skickar resultatet (value);
  • reject(error): Markerar att Promiset är avvisat (misslyckat) och skickar felet.

Använda then() för att hantera uppfyllda Promises:

När ett Promise har skapats kan resultatet hanteras med metoden then(). Denna metod anropas när Promiset är uppfyllt (resolved).

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

I det här exemplet tar metoden then() emot värdet som skickas till resolve() och kör callback-funktionen med resultatet. Den körs endast om Promisen löses framgångsrikt.

Felhantering med .catch()

Promises erbjuder ett enkelt sätt att hantera fel genom metoden .catch(). Om en Promise avvisas (misslyckas) fångas och hanteras felet inuti .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 används för att hantera fel när Promisen avvisas. Den fångar felet som skickas av reject() och gör det möjligt att hantera felhanteringsscenarier.

Kedjning av Promises för sekventiella asynkrona operationer

En av de viktigaste fördelarna med Promises är möjligheten att kedja dem, vilket gör det möjligt att hantera flera asynkrona operationer i följd utan att hamna i callback-helvetet. Varje then() returnerar en ny Promise, vilket gör det möjligt att kedja flera then()-anrop i en sekvens, med resultaten visade i HTML när varje Promise löses.

index.html

index.html

index.js

index.js

index.css

index.css

copy

Sekventiella operationer: Varje then() returnerar ett nytt Promise och skickar resultatet från en operation till nästa. Detta möjliggör en tydlig, linjär sekvens av asynkrona operationer som uppdaterar den visade texten i HTML.

Felfångst: Metoden .catch() hanterar alla fel som uppstår under någon av Promise-lösningarna. Detta säkerställer att fel fångas upp och visas på sidan, oavsett var de inträffar i kedjan.

Varför använda Promises?

  1. Undvika Callback Hell: Promises erbjuder ett renare och mer lättläst sätt att hantera asynkrona operationer än djupt nästlade callbacks;
  2. Felfångst: Promises har inbyggd felfångst med .catch(), vilket gör det enkelt att hantera avvisade operationer;
  3. Sekventiell kedjning: Promises gör det möjligt att köra flera asynkrona operationer i sekvens genom kedjning, vilket gör koden lättare att följa och underhålla.

1. Vad är ett Promise?

2. Vad gör .catch() i följande kod om det uppstår ett fel i någon av .then()-återanropen?

question mark

Vad är ett Promise?

Select the correct answer

question mark

Vad gör .catch() i följande kod om det uppstår ett fel i någon av .then()-återanropen?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 3

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

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

bookHantering av Asynkrona Operationer med Löften

Svep för att visa menyn

Vad är ett Promise?

Ett Promise är en platshållare för ett framtida värde, vilket kan vara:

Ett promise börjar som pending och avslutas permanent som antingen fulfilled med ett värde eller rejected med en orsak.

Förstå metoderna resolve, reject och then()

Skapa ett Promise

För att skapa ett Promise skickar du in en funktion med två parametrar: resolve och reject. Dessa parametrar är funktioner som används för att indikera om den asynkrona operationen har slutförts framgångsrikt eller misslyckats.

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): Markerar att Promiset är uppfyllt (lyckat) och skickar resultatet (value);
  • reject(error): Markerar att Promiset är avvisat (misslyckat) och skickar felet.

Använda then() för att hantera uppfyllda Promises:

När ett Promise har skapats kan resultatet hanteras med metoden then(). Denna metod anropas när Promiset är uppfyllt (resolved).

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

I det här exemplet tar metoden then() emot värdet som skickas till resolve() och kör callback-funktionen med resultatet. Den körs endast om Promisen löses framgångsrikt.

Felhantering med .catch()

Promises erbjuder ett enkelt sätt att hantera fel genom metoden .catch(). Om en Promise avvisas (misslyckas) fångas och hanteras felet inuti .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 används för att hantera fel när Promisen avvisas. Den fångar felet som skickas av reject() och gör det möjligt att hantera felhanteringsscenarier.

Kedjning av Promises för sekventiella asynkrona operationer

En av de viktigaste fördelarna med Promises är möjligheten att kedja dem, vilket gör det möjligt att hantera flera asynkrona operationer i följd utan att hamna i callback-helvetet. Varje then() returnerar en ny Promise, vilket gör det möjligt att kedja flera then()-anrop i en sekvens, med resultaten visade i HTML när varje Promise löses.

index.html

index.html

index.js

index.js

index.css

index.css

copy

Sekventiella operationer: Varje then() returnerar ett nytt Promise och skickar resultatet från en operation till nästa. Detta möjliggör en tydlig, linjär sekvens av asynkrona operationer som uppdaterar den visade texten i HTML.

Felfångst: Metoden .catch() hanterar alla fel som uppstår under någon av Promise-lösningarna. Detta säkerställer att fel fångas upp och visas på sidan, oavsett var de inträffar i kedjan.

Varför använda Promises?

  1. Undvika Callback Hell: Promises erbjuder ett renare och mer lättläst sätt att hantera asynkrona operationer än djupt nästlade callbacks;
  2. Felfångst: Promises har inbyggd felfångst med .catch(), vilket gör det enkelt att hantera avvisade operationer;
  3. Sekventiell kedjning: Promises gör det möjligt att köra flera asynkrona operationer i sekvens genom kedjning, vilket gör koden lättare att följa och underhålla.

1. Vad är ett Promise?

2. Vad gör .catch() i följande kod om det uppstår ett fel i någon av .then()-återanropen?

question mark

Vad är ett Promise?

Select the correct answer

question mark

Vad gör .catch() i följande kod om det uppstår ett fel i någon av .then()-återanropen?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 3
some-alt