JavaScript Promise Ma'lumotnomasi
Ushbu sahifa JavaScript promislar uchun to'liq ma'lumotnoma hisoblanadi. Undan promis metodlari va keng tarqalgan andozalarni izlashda foydalaning.
Promise Obyekti
Promise obyekti asinxron amalning yakunlanishi yoki muvaffaqiyatsizligini ifodalaydi. U har doim 3 ta holatdan birida bo'ladi:
- Pending: Boshlang'ich holat.
- Fulfilled: Amal muvaffaqiyatli yakunlandi.
- Rejected: Amalda xatolik yuz berdi.
Obyekt Metodlari (Instance Methods)
| Metod | Tavsifi |
|---|---|
.then(onFulfilled, onRejected) | Promise muvaffaqiyatli bo'lganda (yoki xato bo'lganda) bajariladigan funksiyalarni belgilaydi. |
.catch(onRejected) | Promise xato bilan yakunlanganda bajariladigan funksiyani belgilaydi. |
.finally(onFinally) | Promise natijasidan qat'iy nazar (muvaffaqiyat yoki xato) oxirida bajariladigan funksiyani belgilaydi. |
Statik Metodlar (Static Methods)
| Metod | Tavsifi |
|---|---|
Promise.all(iterable) | Barcha promislar muvaffaqiyatli bo'lsagina natija qaytaradi. |
Promise.allSettled(iterable) | Barcha promislar tugashini kutadi (natija muvaffaqiyat yoki xatoligidan qat'iy nazar). |
Promise.any(iterable) | Birinchi muvaffaqiyatli bo'lgan promis natijasini qaytaradi. |
Promise.race(iterable) | Qaysi promis birinchi bo'lib tugasa (win), o'shani qaytaradi. |
Promise.reject(reason) | Berilgan sabab bilan rad etilgan (rejected) Promise qaytaradi. |
Promise.resolve(value) | Berilgan qiymat bilan muvaffaqiyatli (resolved) Promise qaytaradi. |
Promise.withResolvers() | Yangi Promise va uni boshqarish uchun resolve, reject funksiyalarini obyekt ko'rinishida qaytaradi. |
Misollar
.then() va .catch() bilan ishlash
js
myPromise
.then((value) => console.log('Natija: ' + value))
.catch((error) => console.log('Xato: ' + error))Promise.all() - Bir vaqtda bir nechtasini kutish
js
Promise.all([p1, p2, p3]).then((values) => {
console.log('Hammasi tayyor:', values)
})Promise.withResolvers() - Tashqaridan boshqarish
js
const { promise, resolve, reject } = Promise.withResolvers()
// 1 soniyadan keyin promisni hal qilamiz
setTimeout(() => resolve('Tayyor!'), 1000)
promise.then((val) => console.log(val))Tavsiya
Agar siz promisni boshidan o'rganmoqchi bo'lsangiz, JavaScript Promislar darsini o'qing.
