Middle
JavaScript-də Promise necə işləyir?
sobes.tech Süni İntellekt
AI-dan cavab
- Asinxron əməliyyatın mümkün sonu (və ya uğursuzluğu) və onun nəticə dəyərini təmsil edən obyekt.
- Promis vəziyyətləri:
pending: başlanğıc vəziyyət, nə tamamlanıb, nə də rədd olunub.fulfilled: əməliyyatın uğurla başa çatdığını göstərir.rejected: əməliyyatın xəta ilə başa çatdığını göstərir.
pendingvəziyyətindənfulfilledvə yarejectedvəziyyətinə keçid yalnız bir dəfə və geri dönüşsüzdür.- Metodlar:
.then(onFulfilled, onRejected): iki callback funksiyası qəbul edir. Birincisi (onFulfilled) uğurda çağırılır, ikincisi (onRejected) xəta baş verdikdə. Hər iki arqument seçimlidir. Yeni promiss qaytarır..catch(onRejected):.then(null, onRejected)qısaldılmış formasıdır. Xətaların idarə olunması üçün istifadə olunur. Yeni promiss qaytarır..finally(onFinally): promissin nəticəsindən asılı olmayaraq çağırılır (uğur və ya xəta). Resursların təmizlənməsi üçün faydalıdır. Yeni promiss qaytarır.
- Promissin yaradılması:
new Promise((resolve, reject) => {
// Asinxron əməliyyat
const success = true;
if (success) {
resolve("Əməliyyat uğurlu!"); // fulfilled vəziyyətinə keçid
} else {
reject("Nəsə səhv getdi..."); // rejected vəziyyətinə keçid
}
});
- Promisslərin zəncirlənməsi:
.then(),.catch(),.finally()promisslər qaytarır, bu da ardıcıl asinxron əməliyyatların zəncirlərinin qurulmasına imkan verir.
fetch(url)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Xəta:', error));