If vs Filter в сравнении производительности RxJS

Рассмотрим пример с RxJS.

Тип A: [используя фильтр]

this.userService.afAuth.authState
      .pipe(filter(user => !!user))
      .subscribe( _ => this.router.navigate(["/anything"]) )

Тип B: [используя if]

this.userService.afAuth.authState
      .subscribe( user => {
        if (!!user) this.router.navigate(["/anything"])
       })

Q1. How do we compare the performance?

Q2. Which is recommended and why?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
0
332
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Q1. How do we compare the performance?

Вы можете использовать https://jsperf.com/ для создания теста производительности. Я могу сказать вам, что «Тип B» должен работать лучше, потому что задействовано меньше вызовов функций. Это будет заметно только в том случае, если вы часто вызываете функцию В самом деле (возможно, 10 000 вызовов в секунду в качестве грубой оценки). Для типичных случаев использования разницы не будет.

Q2. Which is recommended and why?

С точки зрения дизайна рекомендуется «Тип А». Он имеет более декларативный синтаксис и поэтому его легче заменить или использовать повторно. Например, ваша трубка filter может быть извлечена в многоразовую трубу и использоваться несколько раз. Если ваш предикат изменится в какой-то момент, вам нужно изменить его только один раз.

Спасибо за вашу точку зрения. Выглядит весьма многообещающе.

Abhijit Srivastava 08.02.2019 22:03

Другие вопросы по теме