Sobes.tech
Middle

Observable ve Promise arasındaki benzerlikler ve farklar nelerdir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Observable, zaman içinde birden çok değeri yayabilen bir veri akışını temsil eder. Reaktif olup aboneliğin iptal edilmesini destekler. Promise her zaman yalnızca bir kez çözülür veya reddedilir ve tek kullanımlıktır. Observable, veriyi dönüştürmek için operatörleri destekler, Promise desteklemez.

Özellik Observable Promise
Değer sayısı Birden çok değer yayabilir Her zaman tek değer (resolve/reject)
İptal Aboneliğin iptalini destekler İptali desteklemez
Reaktivite Reaktif Hayır
Operatörler Operatörleri destekler (map, filter, vb.) Hayır
Tembellik Tembel (abonelik sırasında çalışır) Açgözlü (hemen çalışır)

Örnek Observable:

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 değeri:', value),
  error: err => console.error('Observable hatası:', err),
  complete: () => console.log('Observable tamamlandı'),
});

Örnek Promise:

const myPromise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('Promise çözüldü');
    // reject('Promise reddedildi');
  }, 1000);
});

myPromise
  .then(value => console.log('Promise değeri:', value))
  .catch(error => console.error('Promise hatası:', error));