Sobes.tech
Middle

Observable və Promise arasındakı oxşarlıqlar və fərqlər nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Observable, zaman ərzində çoxsaylı dəyərlər yaymağa qadirdir. O, reaktivdir və abunəliyin ləğv edilməsini dəstəkləyir. Promise hər zaman yalnız bir dəfə həll olunur və ya rədd edilir və tək istifadəlikdir. Observable məlumatların çevrilməsi üçün operatorları dəstəkləyir, Promise isə etməz.

Xüsusiyyətlər Observable Promise
Dəyərlərin sayı Çoxsaylı dəyərlər yayabilir Həmişə bir dəyər (resolve/reject)
Ləğv etmək Abunəliyin ləğvini dəstəkləyir Ləğv etməyi dəstəkləmir
Reaktivlik Reaktiv Yox
Operatorlar Operatorları dəstəkləyir (map, filter və s.) Yox
Tələskənlik Tələskən (abunə olunduqda işləyir) Dərhal işləyir

Observable nümunəsi:

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 dəyəri:', value),
  error: err => console.error('Observable xətası:', err),
  complete: () => console.log('Observable tamamlandı'),
});

Promise nümunəsi:

const myPromise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('Promise həll olundu');
    // reject('Promise rədd edildi');
  }, 1000);
});

myPromise
  .then(value => console.log('Promise dəyəri:', value))
  .catch(error => console.error('Promise xətası:', error));