Middle
Kako funkcioniše Promise u JavaScript-u?
sobes.tech АИ
Одговор од АИ
- Објекат који представља могући коначни завршетак (или неуспех) асинхроне операције и њену резултујућу вредност.
- Статуси промиса:
pending: почетни статус, ни испуњен ни одбачен.fulfilled: означава да је операција успешно завршена.rejected: означава да је операција завршена грешком.
- Прелазак из
pendingуfulfilledилиrejectedдешава се једном и не може се променити. - Методи:
.then(onFulfilled, onRejected): прихвата две callback функције. Прва (onFulfilled) се позива у случају успеха, друга (onRejected) у случају грешке. Обе аргументе су опциони. Враћа нови промис..catch(onRejected): скраћени облик.then(null, onRejected). Користи се за обраду грешака. Враћа нови промис..finally(onFinally): позива се без обзира на резултат промиса (успех или грешка). Полезно за чишћење ресурса. Враћа нови промис.
- Креирање промиса:
new Promise((resolve, reject) => {
// Асинхрона операција
const success = true;
if (success) {
resolve("Операција успешна!"); // прелаз у стање fulfilled
} else {
reject("Нешто није у реду..."); // прелаз у стање rejected
}
});
- Лансирање промиса:
.then(),.catch(),.finally()враћају промисе, што омогућава стварање ланаца за последовно извршавање асинхроних операција.
fetch(url)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Грешка:', error));