Sobes.tech
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));