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);
});