Middle
Чӣ гуна Promise дар JavaScript кор мекунад?
sobes.tech AI
Ҷавоб аз AI
- Объект, който представлява възможното крайно завършване (или неуспех) на асинхронна операция и нейното резултатно стойност.
- Статуси на промиса:
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));