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

ПЕРЕКЛЮЧИТЬ КАРТУ

Одна из основных проблем использования обратных вызовов или обещаний Javascript заключается в том, что они не могут отменить какие-либо длительные операции HTTP. Рассмотрим случай, когда вы выбрали видео Netflix для просмотра и буквально через несколько секунд передумали и быстро выбрали другое видео. Даже если вас не интересует первое видео, вызов API для получения первого видео все равно продолжится и завершит свою работу в фоновом режиме. Было бы идеально иметь простой механизм для полной отмены этих устаревших событий через некоторое заранее определенное время. Оператор SwitchMap предоставляет простой механизм для отмены этих сетевых запросов в полете. Например, посмотрите на приведенный ниже код с помощью оператора switchMap.

При подписке obs $ 1 будет выдавать ответ на каждый щелчок пользователя по странице, а obs $ 2 будет постепенно выдавать числа каждую 1 секунду. Без карты переключателей при объединении этих двух наблюдаемых obs $ 2 продолжит выполнение, даже когда пользователь щелкает по документу. Но в случае переключения карты obs $ 2 отменит свое предыдущее выполнение и начнет новое выполнение для каждого щелчка пользователя в документе.

ОБЪЕДИНЕНИЕ КАРТ

Оператор карты слияния удобен, когда требуется объединить ответ от двух наблюдаемых объектов. Единственное, на что здесь следует обратить внимание, это то, что окончательная наблюдаемая подписка должна будет дождаться, пока объединенный наблюдаемый объект не выдаст какой-то ответ.

TAP

Оператор Tap - это скорее служебный оператор, который можно использовать для выполнения прозрачных действий, таких как ведение журнала.

КАРТА И ПЕРЕГРУЗКА

Map и Pluck - наиболее часто используемые и очень полезные операторы. Оператор карты в RxJS работает аналогично карте JS. Pluck используется, когда нам просто нужно передать подписке значение одного поля вместо отправки всего объекта JSON.

ВРЕМЯ ОТКРЫТИЯ И ОТЛИЧИТЕЛЬНО ДО ИЗМЕНИТЬ

Эти два оператора обычно используются вместе, но их необязательно всегда соединять вместе. Эти операторы - идеальный выбор в таких сценариях, как опережающий ввод, где необходимо контролировать скорость пользовательского ввода.
debounceTime (1000) заставит observable ждать в течение 1 секунды, прежде чем он сможет выдать ввод пользователя, а uniqueUntilChanged будет выводить только различные значения, основанные на последнем переданном значении.

ОШИБКА ПОИСКА

Оператор Catch Error используется для корректной обработки ошибок, возвращая наблюдаемые сообщения с сообщениями об ошибках, как показано ниже.

ОБЪЕДИНЯЙТЕ ПОСЛЕДНИЕ

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

ZIP

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

ВРЕМЯ ДРОССЕЛЬНОЙ ЗАСЛОНКИ

Этот оператор используется для выдачи последнего значения по истечении заданного времени дросселирования. В приведенном ниже примере подписка будет получать значения только каждые 3 секунды.

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