Загрузка…
Загрузка…
Observable — объект, представляющий поток будущих значений или событий. У него есть метод subscribe, а описание источника задаётся функцией producer или фабриками (of, from, interval, HttpClient.get…).
Контракт уведомлений:
| Сигнал | Смысл |
|---|---|
next | очередное значение |
error | фатальная ошибка, поток завершён |
complete | успешное завершение, больше значений не будет |
После error или complete новых next не будет.
import { of, map } from 'rxjs';
of(1, 2, 3).pipe(map(x => x * 10)).subscribe({
next: console.log,
complete: () => console.log('done'),
});
// 10, 20, 30 затем completeObservable не хранит историю сам по себе (в отличие от BehaviorSubject). Это рецепт/канал. Cold observable начинает работу на каждого подписчика; hot — шарит уже идущий поток.
В Angular почти всё асинхронное API либо уже Observable, либо легко оборачивается через from/defer. Понимание одного Observable — фундамент для операторов, Subjects и отладки «почему ушёл второй HTTP-запрос».
Дополнительно для интервью: свяжите ответ с реальным кейсом из проекта (HTTP-кэш, виджет на legacy-странице, отписка в долгоживущем сервисе) и назовите одну типичную ошибку реализации — это показывает middle-уровень увереннее, чем одно определение.
