Middle
Koje su sličnosti i razlike između Observable i Promise?
sobes.tech АИ
Одговор од АИ
Сличности:
- Представљају асинхроне операције.
- Користе функције за обраду резултата (решено) и грешке (одбачено).
Разлике:
| Карактеристика | Promise | Observable |
|---|---|---|
| Вредност/догађај | Враћа једну вредност или грешку. | Враћа 0 или више вредности током времена. |
| Отказивање | Не може се отказати након покретања. | Може се отказати претплатом. |
| Више претплатника | Једнократно извршавање независно од претплатника. | Нови претплатник обично доводи до новог извршавања (хладни Observable). |
| Ленивост | Одмах по стварању почиње извођење. | Почиње тек након претплате. |
| Оператори | Нема уграђене операторе за трансформацију. | Има богат скуп оператора (map, filter, merge итд.). |
| Примери употребе | HTTP захтеви, одложене акције. | UI догађаји, WebSocket везе, интервали. |
Пример Observable:
import { Observable } from 'rxjs';
const observable = new Observable(subscriber => {
subscriber.next(1);
subscriber.next(2);
setTimeout(() => {
subscriber.next(3);
subscriber.complete();
}, 1000);
});
Пример Promise:
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Датум добијен');
}, 1000);
});