Sobes.tech
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!') // Аякталуу
});

Негизги артыкчылыктары:

  • Реактивдүү программалоо: асинхрондуу маалымат агымдарын оңой башкаруу.
  • Композициялоо: операторлор аркылуу агымдарды оңой бириктирүү жана түрлөргө бөлүү.
  • Өмүр циклін башкаруу: жазылуу аркылуу маалымат алуу процесин так көзөмөлдөө жана эс тутумдун агып кетишин алдын алуу.