Sobes.tech
Middle

Šta je observable?

sobes.tech АИ

Одговор од АИ

Observable — то је ток података који може асинхроно емитовати вредности. За разлику од promise-ова, који враћају једну вредност, observable може емитовати нула, једну или више вредности током времена.

Кључне карактеристике:

  • Лен: Ток почиње да ради само када се претплатите.
  • Отказиво: Можете се одјавити са тока да бисте зауставили његово извршавање и ослободили ресурсе.
  • Више вредности: Може емитовати више вредности, док promise-ови решавају само једном.

Главне компоненте:

  • Observable: Сам ток података.
  • Observer: Објекат са методама next, error и complete, које позива observable.
  • Subscription: Резултат претплате на observable, омогућава одјаву.
  • Operators: Функције које трансформишу или комбинују observable (нпр., map, filter, merge).

Пример употребе (RxJS):

import { of } from 'rxjs';
import { map } from 'rxjs/operators';

const source = of(1, 2, 3); // Креирамо observable који емитује 1, 2, 3

const example = source.pipe(map(x => x + 1)); // Примењујемо оператор map

const subscription = example.subscribe({ // Претплаћујемо се на observable
  next: value => console.log(`Next: ${value}`), // Обрада сваке вредности
  error: err => console.error(`Error: ${err}`), // Обрада грешке
  complete: () => console.log('Complete!') // Позива се при завршетку
});

// излаз:
// Next: 2
// Next: 3
// Next: 4
// Complete!

// subscription.unsubscribe(); // Може се отказати претплата