Sobes.tech
Middle

Millised on Observable ja Promise sarnasused ja erinevused?

sobes.tech AI

Vastus AI-lt

Sarnasused:

  • Näitavad asünkroonseid operatsioone.
  • Kasutavad funktsioone tulemuse (lahendatud) ja vea (tühistatud) töötlemiseks.

Erinevused:

Omadus Promise Observable
Väärtus/üritus Tagastab ühe väärtuse või vea. Tagastab 0 või rohkem väärtusi aja jooksul.
Tühistamine Ei saa tühistada pärast käivitamist. Võib tellimust tühistada.
Mitme tellija Ühekordne täitmine sõltumata tellijatest. Uus tellimus tavaliselt viib uue täitmiseni (külm Observable).
Hooldus Alustatakse kohe pärast loomist. Alustab täitmist alles pärast tellimist.
Operatsioonid Ei sisalda sisseehitatud teisendusoperaatoreid. Omab rikkalikku operaatorite komplekti (map, filter, merge ja teised).
Kasutusnäited HTTP-päringud, viivitusega toimingud. UI sündmused, WebSocket-ühendused, intervallid.

Observable näide:

import { Observable } from 'rxjs';

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

Promise näide:

const promise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('Andmed on saadud');
  }, 1000);
});