Middle
Observable va Promise o'rtasidagi o'xshashliklar va farqlar nima?
sobes.tech AI
AIdan javob
Observable — bu vaqt davomida ko‘p qiymatlarni chiqarishga qodir bo‘lgan ma’lumot oqimi. U reaktiv va obuna bekor qilishni qo‘llab-quvvatlaydi. Promise har doim faqat bir marta hal qilinadi yoki rad etiladi va bir martalik. Observable ma’lumotlarni o‘zgartirish uchun operatorlarni qo‘llab-quvvatlaydi, Promise esa qilmaydi.
| Xususiyat | Observable | Promise |
|---|---|---|
| Qiymatlarning soni | Ko‘p qiymatlarni chiqarishi mumkin | Har doim bitta qiymat (resolve/reject) |
| Bekor qilish | Obuna bekor qilishni qo‘llab-quvvatlaydi | Qo‘llab-quvvatlamaydi |
| Reaktivlik | Reaktiv | Yo‘q |
| Operatorlar | Operatorlarni qo‘llab-quvvatlaydi (map, filter, va boshqalar) | Yo‘q |
| Qisqa muddatli | Qisqa muddatli (obuna bo‘lganda bajariladi) | Tez bajariladi |
Observable misoli:
import { Observable } from 'rxjs';
const myObservable = new Observable(subscriber => {
subscriber.next(1);
subscriber.next(2);
setTimeout(() => {
subscriber.next(3);
subscriber.complete();
}, 1000);
});
myObservable.subscribe({
next: value => console.log('Observable qiymati:', value),
error: err => console.error('Observable xatosi:', err),
complete: () => console.log('Observable tugadi'),
});
Promise misoli:
const myPromise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise hal qilindi');
// reject('Promise rad etildi');
}, 1000);
});
myPromise
.then(value => console.log('Promise qiymati:', value))
.catch(error => console.error('Promise xatosi:', error));