Sobes.tech
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(); // Можно отписаться