RXJS: Подписаться, добавив новый цикл в наблюдаемом операторе сканирования - PullRequest
1 голос
/ 20 июня 2019

Я недавно начал с RxJS, но не смог найти информацию относительно следующего:

При сканировании Observable каждая подписка добавляет новую итерацию к операции сканирования.

Это выглядит как ошибка или плохая реализация кода.

Следующая ссылка демонстрирует это:

https://codesandbox.io/s/fancy-bird-0m81p

У меня 3 подписки, что означает 3 дополнительных циклана функции сканирования.

Закомментируйте подписку и просмотрите изменения в окне консоли.

Это ожидаемое, это ошибка или плохая реализация?

Если ожидается, пожалуйста, дайте ссылку на объяснение, если это возможно.Также возможно ли предотвратить это?

Спасибо, вперед!

1 Ответ

0 голосов
/ 20 июня 2019

Просто чтобы добавить больше комментариев от @JB Nizet Как работа с общим доступом похожа на следующий пример кода

getShareObservable(){
 const share = new Subject()
 Store$.pipe(
  scan((acc, curr) => {
    console.log("Scanning...");
    return Object.assign({}, acc, curr);
  }, initialState).subscribe(share)
  return share
}

const shareObservable=getShareObservable()

, тогда ваш scan не будет запускаться несколько раз

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...