Middle
რა არის observable?
sobes.tech AI
პასუხი AI-სგან
Observable — դա միավոր է, որը ներկայացնում է տվյալների կամ իրադարձությունների հոսք, որը կարող է լինել ասինխրոն: Դիտվող աղբյուրները կարող են արտանետել արժեքներ որոշ ժամանակահատվածում, իսկ գրանցողները (Subscribers կամ Observers) կարող են արձագանքել այդ արժեքներին ըստ դրանց հայտնվելու ժամանակ:
Հիմնական գաղափարներ:
- Observable (Դիտվող աղբյուր): Տվյալների կամ իրադարձությունների աղբյուր:
- Observer (Դիտող): Օբյեկտ, որը ունի մեթոդներ
next,error,complete՝ արձագանքելու համար Observable-ից եկող իրադարձություններին:next: Հաջորդ արժեքի ստացում:error: Գործողության սխալ:complete: Տվյալների հոսքի ավարտ:
- Subscription (Գրանցում): Կապը Observable և Observer միջև: Գրանցումը ստեղծվում է
subscribeմեթոդը կանչելու ժամանակ: - Operators (Օպերատորներ): Ֆունկցիաներ, որոնք փոխում են, համակցում և կառավարում Observable հոսքերը: Օրինակներ՝
map,filter,mergeMap,debounceTime:
Observable-ը տարբեր է Promises-ից, քանի որ այն կարող է արտանետել բազմաթիվ արժեքներ ժամանակի ընթացքում, ներկայացնելով տվյալների հոսք, ոչ թե մեկանգամյա ասինխրոն իրադարձություն:
Օրինակ RxJS-ում (հայտնի ռեակտիվ ծրագրավորման գրադարան):
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
// Observable ստեղծում զանգվածից
const source = new Observable(observer => {
observer.next(1);
observer.next(2);
observer.next(3);
observer.complete(); // Հոսքի ավարտ
});
// Գրանցում և օպերատորի օգտագործում
const subscription = source.pipe(
map(value => value * 2) // `map` օպերատորը կրկնապատկում է յուրաքանչյուր արժեք
).subscribe({
next: value => console.log(value), // Արժեքների ստացում՝ 2, 4, 6
error: err => console.error(err), // Սխալների մշակում
complete: () => console.log('Complete!') // Հոսքի ավարտ
});
Հիմնական առավելությունները՝
- Ռեակտիվ ծրագրավորում՝ հեշտ կառավարում ասինխրոն տվյալների հոսքերը:
- Կոմպոզիցիա՝ հեշտ համակցել և փոխարկել հոսքերը օպերատորների միջոցով:
- Հոսքի կյանքի ցիկլի կառավարում՝ գրանցումը թույլ է տալիս հստակ կառավարել տվյալների ստացումը և կանխել հիշողության արտահոսքը։