Можно ли использовать combLatest для двух наблюдаемых (dataStore1, dataStore2), даже если для них существует отдельная подписка? - PullRequest
0 голосов
/ 24 января 2020

У меня есть основание c сомнений по поводу использования Observable-Subscription от rx js.

Можно ли использовать функциюlateLatest () для двух наблюдаемых (dataStore1, dataStore2) даже хотя для них существует отдельная подписка !!

Если я кеширую данные из магазина (например: this.currentDataStore_1_Value and this.currentDataStore_2_Value), я смогу избежать использования комбинатаПоследний (), тем самым 3 подписки сократятся до 2 ; но нужно кэшировать значения !!

Подписка на хранилище данных 1

this.dataStore1
    .data1$
    .subscribe(
        (data1) => {
            this.currentDataStore_1_Value = data1 // Is this ok to cache the data
            myCommonFunc()
            myData_1_Func(data1)
        }
    )

Подписка на хранилище данных 2

this.dataStore2
    .data2$
    .subscribe(
        (data2) => {
            this.currentDataStore_2_Value = data2 // Is this ok to cache the data
            myCommonFunc()
            myData_2_Func(data2)
        }
    )

Common Fun c, который использует кэшированные значения

func myCommonFunc() {
    // use this.currentDataStore_1_Value and this.currentDataStore_2_Value
}

Specfi c Fun c, чтобы использовать данные каждой строки данных

func myData_1_Func(data1) {
    // use this.currentDataStore_1_Value & this.currentDataStore_2_Value
}

func myData_2_Func(data2) {
    // use this.currentDataStore_1_Value and this.currentDataStore_2_Value
}

Подписка по комбайнуПоследний DataStore 1, 2

   combineLatest(
        this.dataStore1.data1$,
        this.dataStore2.data2$
   )
   .subscribe(
       ([data1, data2]) => {
          // Separate subscription won't cache the result
          // or call myCommonFunc()
          myCommonFunc(data1, data2) 
       }
   )

Итак, вопрос, что эффективно?

  • меньшее количество подписок (2) и кэширование данных (2 данных)
  • максимальное количество подписок (2 + 1 вместе) и без кеша
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...