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