Middle
Ի՞նչ են Observable և Promise-ի նմանությունները և տարբերությունները։
sobes.tech AI
Պատասխան AI-ից
Համապատասխանություններ.
- Ներկայացնում են ասինխրոնային գործողություններ:
- Օգտագործում են ֆունկցիաներ արդյունքը (լուծված) և սխալը (մերժված) մշակելու համար:
Տարբերություններ:
| Գծանշում | 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);
});