Middle
141
questionbank
Что такое observable?
Ответ от нейросети
sobes.tech AI
Observable — это поток данных, который может испускать значения асинхронно. В отличие от промисов, которые возвращают одно значение, observable может испускать ноль, одно или множество значений в течение времени.
Ключевые характеристики:
- Ленивые: Поток начинает работать только при подписке.
- Отменяемые: Можно отписаться от потока, чтобы остановить его выполнение и освободить ресурсы.
- Множество значений: Могут emit'ить несколько значений, в то время как промисы резолвятся только один раз.
Основные компоненты:
- Observable: Сам поток данных.
- Observer: Объект с методами
next,errorиcomplete, которые вызываются наблюдаемым. - 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!') // Вызывается при завершении потока
});
// output:
// Next: 2
// Next: 3
// Next: 4
// Complete!
// subscription.unsubscribe(); // Можно отписаться