Sobes.tech
Middle

Обсервабл чист?

sobes.tech AI

Ҷавоб аз AI

Observable — это поток данных, который может асинхронно излучать значения. В отличие от промисов, которые возвращают одно значение, observable может излучать ноль, одно или несколько значений со временем.

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

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

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

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