Sobes.tech
Middle

Observable ve Promise arasındaki benzerlikler ve farklar nelerdir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Benzerlikler:

  • Asenkron işlemleri temsil ederler.
  • Sonucu (resolved) ve hatayı (rejected) işlemek için fonksiyonlar kullanırlar.

Farklar:

Özellik Promise Observable
Değer/olay Bir değer veya hata döner. Zaman içinde 0 veya daha fazla değer döner.
İptal Başlatıldıktan sonra iptal edilemez. Abonelik iptal edilebilir.
Çoklu aboneler Abonelerden bağımsız tek seferlik yürütme. Yeni abonelik genellikle yeni yürütmeye yol açar (soğuk Observable).
Tembellik Oluşturulduktan sonra hemen yürütmeye başlar. Abonelik sonrası başlar.
Operatörler Dönüşüm için yerleşik operatörleri yoktur. Zengin operatör setine sahiptir (map, filter, merge vb.).
Kullanım örnekleri HTTP istekleri, ertelenmiş işlemler. UI olayları, WebSocket bağlantıları, aralıklar.

Observable örneği:

import { Observable } from 'rxjs';

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

Promise örneği:

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