Promise w JavaScript to obiekt reprezentujący wynik operacji asynchronicznej, który będzie dostępny teraz, w przyszłości lub nigdy (w przypadku błędu).
Promises zostały wprowadzone, aby uporządkować kod asynchroniczny i wyeliminować problem tzw. callback hell.
Każdy Promise może znajdować się w jednym z trzech stanów:
const myPromise = new Promise((resolve, reject) => {
const success = true;
if (success) {
resolve("Operacja zakończona sukcesem");
} else {
reject("Wystąpił błąd");
}
});
myPromise
.then(result => {
console.log(result);
})
.catch(error => {
console.error(error);
});
Metoda then() obsługuje sukces,
a catch() przechwytuje błędy.
Promises umożliwiają wykonywanie operacji jedna po drugiej:
fetch(url) .then(response => response.json()) .then(data => processData(data)) .then(result => console.log(result)) .catch(error => console.error(error));
Składnia async / await jest oparta na Promise i stanowi wygodniejszy sposób ich używania.
async function loadData() {
try {
const response = await fetch(url);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
}
Promise.all() – wszystkie Promise muszą się powieśćPromise.race() – zwraca pierwszy zakończony PromisePromise.any() – pierwszy spełniony PromisePromise.allSettled() – wszystkie zakończone (sukces/błąd)Promises są kluczowym elementem nowoczesnego JavaScript. Umożliwiają tworzenie czytelnego, przewidywalnego i łatwego w utrzymaniu kodu asynchronicznego.
1