Что такое пайп в автомобиле это

Что такое пайп на двигатель

Пайп это в автомобиле

Даунпайп (downpipe) переводится с английского языка как «водосточная труба». Используется в автомобильном тюнинге при установке турбины или замене старой на более мощный и производительный аналог. Часть системы выхлопных газов двигателя. Изготовляется из прочных и жароустойчивых материалов (чаще из нержавеющей стали) на заказ, в зависимости от мотора, модели турбины, конструкционных особенностей выхлопной системы и др.

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

Виды даунпайпа

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

Даунпайпы бывают без катализатора и со спортивным катализатором. Обе модели обладают одинаковой производительностью и эффективностью. Разница заключается в наличии фильтра (катализатора), очищающего выхлопные газы до нормативов Евро 4-5. Это дает владельцу авто относительное спокойствие по поводу загрязнения окружающей среды, однако не более того. Даунпайп со спорт катализатором стоит немного дороже. По свойствам он аналогичен с даунпайном без катализатора. Он также имеет высокую пропускную способность и повышенную производительность.

Существует разновидность даунпайпа, которая устанавливается на атмосферный двигатель (без турбины). Автомастерские изготавливают или приобретают для тюнинга два вида устройств. Аппайп устанавливается только на турбинные двигатели, а даунпайп может быть установлен и на атмосферные. В этом случае сохраняется весь функционал устройства, зато решаются проблемы с фильтрацией выхлопных газов и быстрым их отводом.

Для чего нужна такая модернизация?

Без такого инструмента обойтись можно, если не заниматься установкой турбины, которой изначально на двигателе не было. Главная задача – это соединение инородного компонента с системой выхлопа.

Ситуация с вопросом для чего нужен даунпайп формируется у многих владельцев иномарок. Но, если человек хочет сделать тюнинг автомобиля ВАЗ и установить турбину, ему нужно много чего выдумывать. Штатный глушитель не подходит для перевода отработанных газов, а на заводах таких элементов не выпускают. По этой причине нужно делать даунпайп своими руками, чтобы реализовать задуманное решение.

Наверное многие слышали всякие модные слова по поводу глушителя, но не до конца поняли из смысл и очень бы хотели знать, что же такое пайп, даунпайп, exhaust system, catback, и другие зашифрованные словечки. Мы расскажем, что такое тюнинг глушителя на языке тюнеров и переведем его на русский. Поехали 🙂

Что такое «ПАЙП» или «Pipe»

Pipe или «пайп» переводится на русский язык как «труба». Под словом «пайпинг» при этом понимается трубопровод или система из труб. Собственно «exhaust system» — ( выхлопная система) любого автомобиля состоит в первую очередь из труб и каждый отрезок этих труб имеет свое название. И если некоторые из них, вроде «даунпайпа» плотно вошли в обиход российских тюнеров, то всё остальные никто не использует.
А еще хуже, когда используют колхозные понятия, вроде » трасса или тракт «…

Выпускной коллектор — или «ПАУК»

Итак, сразу после головки блока цилиндров у нас находится первое изделие из труб — «exhaust manifold», он же «header», он же «collector», он же русский «выпускной коллектор» он же «паук». Как в русском так и в английском языке в случае турбомотора коллектор тоже имеет приставку «турбо».

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

«CatBack» или «КатБэк»

Сatback в переводе с английского почти похоже на что-то схожее с котом или кошкой, но увы это не так. КатБэк — это выхлопная система, идущая либо от катализатора, то есть позади его ( CAT — catalyst — катализатор ) и ( Back — задний — позади ). КатБэки пользуются популярностью на двигателях, которым нужно максимально свободно отводить выхлопные газы и чтобы этому процессу ничего не мешало.

«Раннер» или «runner»

Важным частным случаем коллектора являются кат-коллекторы или «manifold converter» — 90% современных автомобилей имеют коллекторы, в которые сразу интегрирован каталитический нейтрализатор. У них короткие раннеры, часто примитивный дизайн из штампованной стали а замена катализатора возможна только в сборе. Такая деталь при этом совсем не дешева и часто весьма «затычна» с точки зрения продувки, не столько из-за катализатора, сколько из-за не оптимального сечения и длины раннеров.

«Даунпайп» или «downpipe»

Названия труб после коллектора будут отличаться, в зависимости от того атмосферный мотор или турбированный. В тубо-моторе сразу от турбины начинается всеми любимый «downpipe» ( даунпайп ) дословно «труба идущая вниз», прямого аналога в русском нет, но «приемная труба» вполне подходит.

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

Еще одна труба со своим предназначением и названием — «dump pipe» или «dump tube» — трубка отвода газов от Вестгейта (перепускного клапана турбины). Присутствует в тех случаях когда вестгейт внешний или имеет на фланце турбины свой собственный отдельный выход. Если Вестгейт встроенный и не имеет своего отвода, то газы идут сразу в даунпайп и отдельной трубы не требуется.

«Фронт пайп» или «front pipes»

В случае атмосферного мотора сразу за коллекторами следуют «front pipes» ( фронт пайпы ) или по-русски приемные трубы. В приемных трубах обычно установлен один или несколько каталитических нейтрализаторов или универсальные пламегасители.

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

Заменой фронт пайпам часто становятся «cat delete pipes» — приемные трубы без катализаторов, в которых один или несколько катализаторов удалены а на их месте прямая труба.

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

— Прошу заметить, что никаких «искрогасителей» и «стронгеров» при этом ни в «даунпайпах» ни в «фронт пайпах» нет и не бывает. Вы не найдете их аналогов в английском языке и не найдете этих изделий в ассортименте зарубежных компаний. Однако, если нужно снизить резонанс или вибрацию выхлопа ( звука) то иногда устанавливаются спец-компоненты, такие как спортивные катализаторы с увеличенным сечением или пламегасители спортивного типа. Устанавливаются эти компоненты в разрез пайпов.

После приемных труб (даунпайпа в турбо моторе или фронт пайпа в атмосферном моторе) начинается «middle section» — средняя часть выхлопа, она же » mid-pipe» Она обычно включает в себя первичный глушитель и части труб, идущие до заднего моста.

«H-pipe» или «X-pipe» — «Аш-пайп» или «Икс-пайп»

В атмосферных моторах с двойным симметричным или ассиметричным выхлопом, на стыке приемных труб и средней части, появляются новые герои — всеми любимые H-pipe или X-pipe или их сочетания Y-pipe.

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

В зависимости от конструкции и компоновки Х-pipe или H-pipe могут быть объединены с приемными трубами или быть отдельным элементом в средней части системы. Они могут быть как до так и после резонаторов, а то и вовсе интегрированы в сам резонатор или первичный глушитель. Эти компоненты отвечают в основном за смешивание выхлопных газов и их точный расчет дает уникальный бурлящий звук выхлопа типа АMG ( на моторах V-6 и более )

«Muffler» или «Мафлер» он же «глушак» — «глушитель» — » банка»

Заканчивает выхлоп всегда глушитель или «Muffler». Он может быть прямоточным, камерным, дипассивным ( управляемым с помощью заслонки ), круглым, овальным или плоским. Если он не нужен — то устанавливается «muffler delete pipe» — труба с насадкой без глушителя.

Теперь Вы подкованы и можете смело вступать в диспуты и дискуссии с мастерами из тюнинга глушителей 🙂

Наш ИНСТАГРАМ — Подписывайтесь и пишите!

Возможные трудности при монтаже

Основные проблемы при установке даунпайпа связаны с откручиванием крепёжных элементов (гаек) с горячей части турбины. Автомобильная система выхлопа работает в тяжёлых условиях. Подвержена воздействию высоких температурных нагрузок, сталкивается с водой и агрессивными веществами (реагентами на дорогах). Неблагоприятные эксплуатационные условия ускоряют коррозионные процессы.

Поэтому перед монтажом даунпайпа будет не лишним запастись следующими крепежами:

Самостоятельный тюнинг выхлопной системы и автомобиля в целом проводится при наличии знаний и определённых умений. В противном случае потратите большое количество времени и денежных средств впустую, но не добьётесь желаемого результата. Поэтому беритесь за самостоятельное изготовление и установку даунпайпа только тогда, когда уверены в своих силах. В остальных случаях лучше обращаться в специальные тюнинг-салоны и техцентры.

Содержание

Системы снижения токсичности картерных газов [ ]

При работе двигателя его детали, которые двигаются возвратно-поступательно, заставляют воздух в картере перемещаться, так что давление внутри двигателя постоянно изменяется. Из этого следует, что двигателю необходим какой-нибудь сапун или вентиляция. Кроме того, газы прорываются при сгорании по кольцевым уплотнениям из камеры сгорания в картер.

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

Система вентиляции картера

На четырехтактных двигателях для предотвращения попадания в атмосферу воздуха, находящегося в картере, сильно загрязненного маслом и определенным количеством несгоревшего топлива, прорвавшегося по поршням, делается следующее. Воздух отводится в корпус воздушного фильтра при помощи шланга, который называют «шлангом вентиляции картера»

Обычно перед шлангом вентиляции в картере располагается камера с маслоотбойником, улавливающим большие частицы масла, которые затем отводятся обратно в поддон. Воздух, прошедший через нее, все еще тщательно перемешан с масляным «туманом*. Он направляется в маслоотделитель (располагающийся либо перед корпусом воздушного фильтра, либо внутри него), в котором масло отделяется и направляется в сливной бак или в закрытую дренажную трубку (которую периодически необходимо опорожнять). Тем временем, оставшийся воздух и «масляный туман» заново попадают в корпус воздушного фильтра, а затем в двигатель вместе со свежим воздухом, где сгорают на такте рабочего хода.

Система снижения токсичности испарений топлива (EVAP) [ ]

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

Система EVAP, применяющаяся на мотоцикле Suzuki GXR-R750

Эта система, носящая название «EVAP», предотвращает попадание паров топлива из бака в атмосферу, поглощая их в заполненной древесным углем емкости. Согласно законодательству, начиная с 1984 года, в Калифорнии (США) система устанавливается на все мотоциклы, она также используется в Швейцарии. На мотоциклах без системы EVAP вентиляция бака осуществляется в атмосферу через сапун в крышке заливной горловины или через вентиляционный шланг.

При неработающем двигателе пары топлива из бака направляются через клапан опрокидывания в емкость, где они поглощаются и хранятся во время стоянки мотоцикла. При запуске двигателя разрежение во впускном трубопроводе открывает распределительный клапан очистки, и тогда пары, хранящиеся в емкости, подаются в карбюратор и сгорают на такте рабочего хода.

Клапан опрокидывания закрывает и предотвращает любую утечку топлива через него в случае опрокидывания мотоцикла. В крышке заливной горловины есть обратный клапан, который пропускает воздух в бак по мере уменьшения объема топлива, но предотвращает любые протечки паров топлива наружу. В некоторых системах всевозможные испарения из карбюратора также отводятся в емкость через двухходовой клапан, допускающий прохождение пара от карбюраторов в емкость (при неработающем двигателе) и позволяющий пару протекать обратно (при работающем двигателе).

Система снижения токсичности отработавших газов [ ]

Системы подачи воздуха (PAIR) [ ]

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

Система подачи воздуха, которая часто называется «PAIR» (pulse secondary air), снижает количество несгоревших углеводородов, отводимых с отработавшими газами. В ней используются пульсации отработавших газов для подсоса свежего воздуха в выпускные каналы, где он перемешивается с нагретыми выхлопными газами.

Дополнительный кислород способствует продолжению сгорания (догоранию), позволяющему выгореть несгоревшим углеводородам, таким образом снижая токсичность выбросов. Лепестковые клапана управляют расходом воздуха, поступающего через каналы, открываясь при наличии разрежения и предотвращая протечку отработавших газов при наличии избыточного давления. Отсечной воздушный клапан перекрывает подачу воздуха при торможении двигателем, тем самым предотвращая обратные вспышки.

Каталитические нейтрализаторы [ ]

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

Пример каталитического нейтрализатора

Ограниченное использование каталитических нейтрализаторов на мотоциклах было связано с отсутствием моделей с системой впрыска топлива. Эта система очень важна в случае применения катализатора, поскольку он работает эффективно только при строго определенных условиях, которые карбюраторы не могут обеспечить. Существуют примеры использования каталитических нейтрализаторов на моделях с карбюраторными двигателями. Эти системы обычно оборудуются отсечными топливными клапанами, которые предохраняют каталитический нейтрализатор от повреждения, связанного с попаданием в камеру сгорания переобогащенной смеси. Катализатор — это вещество, которое инициирует химическую реакцию между другими элементами, но само непосредственно в реакции не участвует. Преимущество этого в том. что при работе катализатор не расходуется и свойства его не меняются, так что он продолжает работать, несмотря на все, вокруг него происходящее. Сам по себе каталитический нейтрализатор необслуживаемый, но он очень хрупкий и может быть поврежден при неисправности системы выпуска; также он может быть поврежден при использовании этилированного бензина или неправильной топливовоздушной смеси.

Каталитический нейтрализатор — это «пористая» структура, которая устанавливается в систему выпуска перед глушителем шума. Она содержит катализаторы — обычно платину, палладий и радий, которые используются отдельно или в соединениях, — для осуществления химических реакций вредных выбросов в отработавших газах, по мере их прохождения по выпускной системе. Они преобразуют СН, СО и N02 в безопасный водяной пар, двуокись углерода и кислород. Пористая структура увеличивает поверхность для обеспечения реагирования всех вредных выбросов с соответствующим (ми) катализатором(ами), но при этом не увеличивает сопротивление потоку. Расположение каталитического нейтрализатора в выпускной системе обусловлено условиями работы, поскольку он может функционировать в пределах заданного температурного интервала.

Каталитический нейтрализатор может нормально функционировать только на неэтилированном бензине. Это связано с тем, что продукты сгорания этилированного бензина содержат трудноудаляемые отложения, которые ухудшают доступ отработавших газов к катализатору.

Источник

Основы реактивного программирования с использованием RxJS. Часть 2. Операторы и пайпы

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

В предыдущей статье мы рассмотрели, что такое потоки и с чем их едят. В новой части мы познакомимся с тем, какие методы RxJS предоставляет для создания потоков, что такое операторы, пайпы(pipes) и как с ними работать.

Серия статей «Основы реактивного программирования с использованием RxJS»:

RxJS обладает богатейшим API. В документации описано более ста методов. Чтобы немного познакомиться с ними, мы напишем простое приложение и на практике посмотрим, как выглядит реактивный код. Вы увидите, что одни и те же задачи, которые раньше казались рутинными и требовали написания большого количества кода, имеют элегантное решение, если смотреть на них сквозь призму реактивности. Но прежде чем мы перейдем к практике, рассмотрим, как потоки можно представить графически, и познакомимся с удобными методами для их создания и обработки.

Графическое представление потоков

Чтобы наглядно продемонстрировать, как ведет себя тот или иной поток, я буду использовать принятую в реактивном подходе нотацию. Вспомним наш пример из предыдущей статьи:

Вот как будет выглядеть его графическое представление:

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

Поток обычно изображается в виде прямой линии. Если поток испускает какое-либо значение, то оно отображается на линии в виде кружка. Прямая черта в отображении — это сигнал завершения потока. Для отображения ошибки используется символ — “×”.

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

Потоки в одну строчку

В моей практике я редко сталкивался с необходимостью создавать свои экземпляры Observable напрямую. Большинство методов для создания потоков уже есть в RxJS. Чтобы создать поток, испускающий значения 1 и 2, достаточно лишь использовать метод of:

Метод of принимает на вход любое количество аргументов и возвращает готовый экземпляр Observable. После подписки он испустит полученные значения и завершится:

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

Если вы хотите представить массив в виде потока, то можно воспользоваться методом from. Метод from в качестве аргумента ожидает любой итерируемый объект(массив, строка и т.д.) или promise, и проецирует этот объект на поток. Вот как будет выглядеть поток, полученный из строки:

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

А вот так можно обернуть promise в поток:

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

Примечание: часто потоки сравнивают с promise. На самом деле, они имеют всего одну общую черту — push стратегию распространения изменений. В остальном это абсолютно разные сущности. Promise не может выдать несколько значений. Он может только выполнить resolve или reject, т.е. иметь только два состояния. Поток же может передавать несколько значений, и может быть повторно использован.

А помните пример с интервалом из первой статьи? Данный поток представляет собой таймер, который отсчитывает время в секундах с момента подписки.

Вот как в одну строчку можно реализовать то же самое:

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

И напоследок метод, который позволяет создать поток событий DOM элементов:

В качестве значений этот поток будет получать и испускать объекты события “keyup”.

Пайпы & операторы

Pipe — это метод класса Observable, добавленный в RxJS в версии 5.5. Благодаря ему мы можем строить цепочки операторов для последовательной обработки значений, полученных в потоке. Pipe представляет собой однонаправленный канал, который связывает между собой операторы. Сами операторы являются обычными функциями, описанными в RxJS, которые обрабатывают значения из потока.

Например, они могут преобразовать значение и передать его дальше в поток, или могут выполнять роль фильтров и не пропускать какие-либо значения, если они не соответствуют заданному условию.

Посмотрим на операторы в деле. Умножим каждое значение из потока на 2 с помощью оператора map:

Вот как выглядит поток до применения оператора map:

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

После оператора map:

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

Давайте воспользуемся оператором filter. Этот оператор работает точно так же, как функция filter в классе Array. Первым аргументом метод принимает функцию, в которой описано какое-либо условие. Если значение из потока удовлетворяет условию, то оно пропускается дальше:

И вот как будет выглядеть вся схема нашего потока:

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

Пишем приложение

Теперь, когда мы выяснили, что такое пайпы и операторы, можно приступать к практике. Наше приложение будет выполнять одну простую задачу: выводить список открытых репозиториев github по введенному никнейму владельца.

Требований будет немного:

Начнем с html разметки. Опишем input и ul элементы:

Затем в js или ts файле получим ссылки на текущие элементы используя browser API:

Ещё нам понадобится метод, который будет выполнять запрос к github API. Ниже приведен код функции getUsersRepsFromAPI, которая принимает на вход никнейм пользователя и выполняет ajax запрос, используя fetch. Затем возвращает promise, попутно преобразуя успешный ответ в json:

Следом напишем метод, который будет выводить список названий репозиториев:

Приготовления завершены. Настало время посмотреть на RxJS в действии. Нам необходимо слушать событие keyup нашего input’а. Первым делом мы должны понять, что в реактивном подходе мы работаем с потоками. К счастью, в RxJS уже предусмотрен подобный вариант. Вспомните метод fromEvent, который я упоминал выше. Используем его:

Теперь наше событие представлено как поток. Если мы посмотрим, что выводится в консоль, то увидим объект типа KeyboardEvent. Но нам нужно введенное пользователем значение. Вот тут-то нам и пригодится метод pipe и оператор map:

Перейдем к реализации требований. Начнем с того, что будем выполнять запрос, когда введенное значение содержит более двух символов. Для этого воспользуемся оператором filter:

С первым требованием разобрались. Приступим ко второму. Нам необходимо реализовать debounce. В RxJS есть оператор debounceTime. Данный оператор в качестве первого аргумента принимает число миллисекунд, в течение которых значение будет удерживаться, прежде чем пройдет дальше. При этом каждое новое значение будет сбрасывать таймер. Таким образом, на выходе мы получим последнее значение, после ввода которого прошло 700 миллисекунд.

Вот как может выглядеть наш поток без debounceTime:

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

А вот так будет выглядеть тот же поток, пропущенный через этот оператор:

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

С debounceTime мы будем реже обращаться к API, за счет чего получим экономию трафика и разгрузим сервер.

В целях дополнительной оптимизации предлагаю использовать еще один оператор — distinctUntilChanged. Данный метод избавит нас от дубликатов. Лучше всего показать его работу на примере:

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

Что такое пайп в автомобиле это. Смотреть фото Что такое пайп в автомобиле это. Смотреть картинку Что такое пайп в автомобиле это. Картинка про Что такое пайп в автомобиле это. Фото Что такое пайп в автомобиле это

Добавим данный оператор сразу после оператора debounceTime. Таким образом, мы не будем обращаться к API, если новое значение по какой-то причине совпадает с предыдущим. Подобная ситуация может возникнуть, когда пользователь ввел новые символы, а затем снова стер их. Так как у нас реализована задержка, в поток попадет только последнее значение, ответ на которое у нас уже есть.

Идем на сервер

Уже сейчас мы можем описать логику запроса и обработки ответа. Пока мы умеем только работать с promise. Поэтому опишем еще один оператор map, который будет вызывать метод getUsersRepsFromAPI. В наблюдателе опишем логику обработки нашего promise:

На текущий момент мы реализовали все, что хотели. Но у нашего примера есть один большой недостаток: нет обработки ошибок. Наш наблюдатель получает только promise и понятия не имеет, что что-то могло пойти не так.

Конечно, мы можем навесить catch на promise в методе next, но из-за этого наш код начнет все больше напоминать “callback hell”. Если вдруг нам понадобится выполнить еще один запрос, то сложность кода возрастет.

Примечание: использование promise в коде с RxJS считается антипаттерном. Promise имеет множество недостатков по сравнению с observable. Его нельзя отменить, и нельзя использовать повторно. Если перед вами стоит выбор, то выбирайте observable. То же самое касается метода toPromise класса Observable. Данный метод был реализован в целях совместимости с библиотеками, которые не могут работать с потоками.

Мы можем использовать метод from, чтобы спроецировать promise на поток, но этот способ чреват дополнительными вызовами метода subscribe, и также приведет к разрастанию и усложнению кода.

Решить эту проблему можно с помощью оператора mergeMap:

Теперь нам не нужно писать логику обработки promise. Метод from сделал из promise поток, а оператор mergeMap обработал его. Если promise выполнится успешно, то вызовется метод next, и наш наблюдатель получит готовый объект. Если же произойдет ошибка, то будет вызван метод error, и наш наблюдатель выведет ошибку в console.

Оператор mergeMap немного отличается от тех операторов, с которыми мы работали ранее, он принадлежит к так называемым Higher Order Observables, о которых я расскажу в следующей статье. Но, забегая вперед, скажу, что метод mergeMap сам подписывается на поток.

Обработка ошибок

Если наш поток получит ошибку, то он завершится. И если попытаться после ошибки взаимодействовать с приложением, то никакой реакции мы не получим, так как наш поток завершился.

Тут нам поможет оператор catchError. catchError вызывается только тогда, когда в потоке появляется ошибка. Он позволяет перехватить ее, обработать и вернуть в поток обычное значение, которое не приведет к его завершению.

Мы перехватываем ошибку в catchError и вместо нее возвращаем поток с пустым массивом. Теперь при возникновении ошибки мы очистим список репозиториев. Но затем поток снова завершится.

Все дело в том, что catchError подменяет наш оригинальный поток на новый. И дальше наш наблюдатель слушает только его. Когда поток of испустит пустой массив, будет вызван метод complete.

Чтобы не подменять наш оригинальный поток, вызовем оператор catchError на потоке from внутри оператора mergeMap.

Таким образом, наш оригинальный поток ничего не заметит. Вместо ошибки он получит пустой массив.

Заключение

Мы наконец-то перешли к практике и увидели, для чего нужны пайпы и операторы. Рассмотрели, как можно сократить код, пользуясь богатым API, которое предоставляет нам RxJS. Конечно, наше приложение не закончено, в следующей части мы разберем, как можно в одном потоке обрабатывать другой и как отменять наш http запрос, чтобы еще больше экономить трафик и ресурсы нашего приложения. А чтобы вы могли увидеть разницу, я выложил пример без использования RxJS, посмотреть его можно здесь. По этой ссылке вы найдете полный код текущего приложения. Для генерации схем я пользовался RxJS визуализатором.

Надеюсь, что данная статья помогла вам лучше понять, как устроен RxJS. Желаю вам успехов в изучении!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *