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