Sobes.tech
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.
  • pending holatdan fulfilled yoki rejected holatiga 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));