Sobes.tech
Middle

Observable და Promise-ის მსგავსებები და განსხვავებები რა არის?

sobes.tech AI

პასუხი AI-სგან

Oxşarlıqlar:

  • Asinxron əməliyyatları təmsil edir.
  • Nəticəni (həll olunmuş) və xətanı (rədd edilmiş) işləmək üçün funksiyalar istifadə edir.

Fərqlər:

Xüsusiyyət Promise Observable
Qiymət/tədbir Bir qiymət və ya xəta qaytarır. Zamanla 0 və ya daha çox qiymət qaytarır.
İmtina İşə salındıqdan sonra imtina edilə bilməz. Abunəlik imtina edilə bilər.
Çoxlu abunəçilər Bir dəfəlik icra, abunəçilərdən asılı deyil. Yeni abunəlik adətən yeni icra ilə nəticələnir (soyuq Observable).
Lazımi Yaradıldıqdan sonra dərhal icra etməyə başlayır. Yalnız abunəlikdən sonra başlar.
Operatorlar Transformasiya üçün daxili operatorlar yoxdur. Zəngin operatorlar toplusu (map, filter, merge və s.).
İstifadə nümunələri HTTP sorğuları, gecikdirilmiş əməliyyatlar. UI hadisələri, WebSocket əlaqələri, intervalar.

Observable nümunəsi:

import { Observable } from 'rxjs';

const observable = new Observable(subscriber => {
  subscriber.next(1);
  subscriber.next(2);
  setTimeout(() => {
    subscriber.next(3);
    subscriber.complete();
  }, 1000);
});

Promise nümunəsi:

const promise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('Məlumatlar alındı');
  }, 1000);
});