В Angular наблюдаемые являются ключевой частью парадигмы реактивного программирования, используемой для обработки асинхронных потоков данных. Observables представляют собой последовательность значений во времени, и на них можно подписаться, чтобы получать эти значения. Вот несколько методов, обычно используемых с наблюдаемыми в Angular:
-
subscribe(): этот метод используется для подписки на наблюдаемый объект и получения его излучаемых значений. В качестве аргументов он принимает одну или несколько функций, которые будут вызываться при выдаче новых значений или при возникновении ошибки или события завершения. -
pipe(): методpipe()позволяет объединять несколько операторов вместе для преобразования, фильтрации или объединения значений, выдаваемых наблюдаемым объектом. Такие операторы, какmap,filter,mergeMapиswitchMap, обычно используются вpipe().метод. -
map(): операторmap()используется для преобразования значений, выдаваемых наблюдаемым объектом, в новые значения. В качестве аргумента он принимает функцию, определяющую логику преобразования. -
filter(): операторfilter()используется для выборочной выдачи значений из наблюдаемого объекта на основе условия. В качестве аргумента он принимает функцию-предикат, которая определяет, следует ли выдавать значение или нет. -
mergeMap(): операторmergeMap()используется для сглаживания и объединения нескольких наблюдаемых объектов в один наблюдаемый объект. Он применяет функцию проекции к каждому испускаемому значению и возвращает наблюдаемую, которая выдает проецируемые значения. -
switchMap(): операторswitchMap()аналогиченmergeMap(), но он отменяет предыдущую внутреннюю наблюдаемую когда выдается новое значение. Он часто используется в сценариях, когда вы хотите переключиться на новый источник данных на основе последнего значения. -
catchError(): операторcatchError()используется для обработки ошибок, возникающих в наблюдаемом потоке. Это позволяет вам предоставить резервное значение или выполнить логику обработки ошибок перед продолжением потока. -
tap(): операторtap()позволяет выполнять побочные эффекты для каждого значения, выдаваемого наблюдаемым объектом, без изменения самих значений. Это может быть полезно для отладки или регистрации. -
debounceTime(): операторdebounceTime()используется для задержки передачи значений из наблюдаемого объекта на указанный промежуток времени. Он часто используется в сценариях, когда вам нужно подождать некоторое время бездействия, прежде чем предпринимать действия. -
distinctUntilChanged(): операторdistinctUntilChanged()отфильтровывает последовательные повторяющиеся значения, выдаваемые наблюдаемым объектом. Это гарантирует, что через поток передаются только отдельные значения.