Rx JS оператор карты против производительности деструктуризации - PullRequest
0 голосов
/ 02 апреля 2020

Лично я бы посчитал № 2 плохой практикой с точки зрения rxjs - я прав? Какой из способов ниже является более предпочтительным с точки зрения производительности и почему?

source$.pipe(
   map(s => s.someKey)
).subscribe(someValue => {
   workWithData(someValue)
})

или

source$.subscribe(({someValue}) => {
   workWithData(someValue)
})

1 Ответ

1 голос
/ 18 апреля 2020

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

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

const sourceKeys$ = source$.pipe(
   map(s => s.someKey)
);
sourceKeys.subscribe(someValue => {
   workWithData(someValue)
})

Если вам не понадобится sourceKeys$ в качестве наблюдаемого вы можете выполнять все побочные эффекты и операции с данными в блоке subscribe.

...