Middle
Как работи Promise в JavaScript?
sobes.tech AI
Отговор от AI
- Обект, който представлява възможното крайно завършване (или неуспех) на асинхронна операция и нейното резултатно стойност.
- Статуси на промиса:
pending: начално състояние, нито изпълнено, нито отхвърлено.fulfilled: означава, че операцията е успешно завършена.rejected: означава, че операцията е приключила с грешка.
- Преходът от
pendingкъмfulfilledилиrejectedсе случва еднократно и е необратим. - Методи:
.then(onFulfilled, onRejected): приема две функции за обратно извикване. Първата (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));