Middle
JavaScriptda Promise qanday ishlaydi?
sobes.tech AI
AIdan javob
- Asinxron operatsiyaning mumkin bo'lgan yakuniy yakunlanishi (yoki xatosi) va uning natijaviy qiymatini ifodalovchi ob'ekt.
- Promis holatlari:
pending: boshlang'ich holat, bajarilmagan yoki rad etilmagan.fulfilled: operatsiya muvaffaqiyatli yakunlanganligini bildiradi.rejected: operatsiya xato bilan yakunlanganligini bildiradi.
pendingholatdanfulfilledyokirejectedholatiga o'tish faqat bir marta va qaytarilmasdir.- Usullar:
.then(onFulfilled, onRejected): ikkita callback funksiyasini qabul qiladi. Birinchi (onFulfilled) muvaffaqiyatda chaqiriladi, ikkinchi (onRejected) xato bo'lsa chaqiriladi. Ikkala argument ham ixtiyoriy. Yangi promis qaytaradi..catch(onRejected):.then(null, onRejected)qisqartmasi. Xatolarni boshqarish uchun mo'ljallangan. Yangi promis qaytaradi..finally(onFinally): promis natijasidan qat'i nazar chaqiriladi (muvaffaqiyat yoki xato). Resurslarni tozalash uchun foydalidir. Yangi promis qaytaradi.
- Promis yaratish:
new Promise((resolve, reject) => {
// Asinxron operatsiya
const success = true;
if (success) {
resolve("Operatsiya muvaffaqiyatli!"); // fulfilled holatiga o'tish
} else {
reject("Nimadir noto'g'ri ketdi..."); // rejected holatiga o'tish
}
});
- Promislarni zanjirlash:
.then(),.catch(),.finally()promislarni qaytaradi, bu esa ketma-ket asinxron operatsiyalarni bajarish uchun zanjirlar yaratishga imkon beradi.
fetch(url)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Xato:', error));