Sobes.tech
Middle

Какво е observable?

sobes.tech AI

Отговор от AI

Observable — това е поток от данни, който може да излъчва стойности асинхронно. За разлика от promises, които връщат една стойност, observable може да излъчва нула, една или множество стойности във времето.

Ключови характеристики:

  • Ленив: Потокът започва да работи само при абониране.
  • Отменяем: Може да се отпишете от потока, за да спрете изпълнението му и да освободите ресурси.
  • Множество стойности: Може да излъчва няколко стойности, докато promises се решават само веднъж.

Основни компоненти:

  • 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(); // Може да се отпишете