Middle
Маъзулоти Observable ва Promise чӣ гунаанд ва фарқиятҳо кадомҳоянд?
sobes.tech AI
Ҷавоб аз AI
Observable намояндагӣ мекунад, ки метавонад дар тӯли вақт чандин арзишро интиқол диҳад. Он реактивӣ аст ва дастгирии бекор кардани обуна дорад. Promise ҳамеша танҳо як маротиба ҳал ё рад мешавад ва яккарата истифода мешавад. Observable операторҳоро барои табдил додани маълумот дастгирӣ мекунад, Promise намекунад.
| Хусусият | Observable | Promise |
|---|---|---|
| Миқдори арзишҳо | Мумкин аст чанд арзишро интиқол диҳад | Ҳамеша як арзиш (resolve/reject) |
| Бекор кардан | Дастгирии бекор кардани обуна | Дастгирӣ намекунад |
| Реактивӣ | Реактивӣ | Не |
| Операторҳо | Дастгирӣ операторҳо (map, filter, ва ғайра) | Не |
| Лаззат | Лаззат (дар обуна кардан иҷро мешавад) | Беғараз (ҳар вақт иҷро мешавад) |
Маслиҳат барои Observable:
import { Observable } from 'rxjs';
const myObservable = new Observable(subscriber => {
subscriber.next(1);
subscriber.next(2);
setTimeout(() => {
subscriber.next(3);
subscriber.complete();
}, 1000);
});
myObservable.subscribe({
next: value => console.log('Арзиши Observable:', value),
error: err => console.error('Хатои Observable:', err),
complete: () => console.log('Observable тамом шуд'),
});
Маслиҳат барои Promise:
const myPromise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise ҳал шуд');
// reject('Promise рад шуд');
}, 1000);
});
myPromise
.then(value => console.log('Арзиши Promise:', value))
.catch(error => console.error('Хатои Promise:', error));