Middle
Observable va Promise o'rtasidagi o'xshashliklar va farqlar nima?
sobes.tech AI
AIdan javob
O'xshashliklar:
- Asinxron operatsiyalarni ifodalaydi.
- Natija (resolved) va xatolik (rejected) uchun funksiyalarni ishlatadi.
Farqlar:
| Xususiyat | Promise | Observable |
|---|---|---|
| Qiymat/hodisə | Bir qiymat yoki xatolikni qaytaradi. | Vaqt o'tishi bilan 0 yoki ko'proq qiymatlarni qaytaradi. |
| Bekor qilish | Ishga tushirilgandan so'ng bekor qilish mumkin emas. | Obuna bekor qilinishi mumkin. |
| Ko'p obunachilar | Obunachilardan mustaqil bir martalik bajariladi. | Yangi obuna odatda yangi bajarilishga olib keladi (sovuq Observable). |
| Laziness | Yaratilgandan keyin darhol bajarila boshlaydi. | Obuna bo'lgandan keyin boshlanadi. |
| Operatorlar | Transformatsiya uchun ichki operatorlar mavjud emas. | Boy operatorlar to'plamiga ega (map, filter, merge va boshqalar). |
| Foydalanish misollari | HTTP so'rovlar, kechiktirilgan harakatlar. | UI voqealari, WebSocket ulanishlari, intervallar. |
Observable misoli:
import { Observable } from 'rxjs';
const observable = new Observable(subscriber => {
subscriber.next(1);
subscriber.next(2);
setTimeout(() => {
subscriber.next(3);
subscriber.complete();
}, 1000);
});
Promise misoli:
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Ma`lumotlar olindi');
}, 1000);
});