Middle
Millised on Observable ja Promise sarnasused ja erinevused?
sobes.tech AI
Vastus AI-lt
Observable on andmevoog, mis suudab aja jooksul edastada palju väärtusi. See on reaktiivne ja toetab tellimuse tühistamist. Promise lahendatakse või lükatakse tagasi ainult üks kord ning see on ühekordne. Observable toetab andmete teisendamise operaatoreid, Promise mitte.
| Omadus | Observable | Promise |
|---|---|---|
| Väärtuste arv | Võib edastada palju väärtusi | Alati üks väärtus (lahendamine/tühistamine) |
| Tühistamine | Toetab tellimuse tühistamist | Ei toeta tühistamist |
| Reaktiivsus | Reaktiivne | Mitte |
| Operatsioonid | Toetab operaatoreid (map, filter jms) | Ei |
| Viivitus | Viivitatud (täidetakse tellimisel) | Eager (täidetakse kohe) |
Näide Observable:
import { Observable } from 'rxjs';
const minuObservable = new Observable(subscriber => {
subscriber.next(1);
subscriber.next(2);
setTimeout(() => {
subscriber.next(3);
subscriber.complete();
}, 1000);
});
minuObservable.subscribe({
next: value => console.log('Observable väärtus:', value),
error: err => console.error('Observable viga:', err),
complete: () => console.log('Observable lõpetatud'),
});
Näide Promise:
const minuPromise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise lahendatud');
// reject('Promise tagasi lükatud');
}, 1000);
});
minuPromise
.then(value => console.log('Promise väärtus:', value))
.catch(error => console.error('Promise viga:', error));