BehaviourSubject ударил несколько раз, если есть только одно значение - PullRequest
0 голосов
/ 19 марта 2019

Я использовал поведенческий объект в общем сервисе, чтобы получить текущее значение при нажатии кнопки. Он работает, как и ожидалось, но иногда вызов API в блоке подписки поведения объекта многократно срабатывает.

что будетвопрос ??

1 Ответ

2 голосов
/ 19 марта 2019

Возможны следующие причины:

  1. Это происходит, когда вы подписываетесь на BehaviorSubject в блоке кода, который выполняется несколько раз. Пример, если вы подписываетесь в хуке жизненного цикла ngAfterViewChecked углового компонента, который выполняется несколько раз.
  2. Вы никогда не отписывались, но каждый раз, когда приложение загружает компонент, подписывайтесь на тему своего поведения.
  3. Подписчик BehaviorSubject всегда выполняется по крайней мере один раз, потому что BehaviorSubject требует аргумент по умолчанию при создании и выдает переданный аргумент по умолчанию по крайней мере один раз, если вы вызываете метод .next () только один раз в экземпляре BehaviorSubject, Subscriber будет выполняться дважды , Первый раз для значения по умолчанию, переданного при создании экземпляра BehaviorSubject, второй раз для значения, которое вы передали, вызвав метод .next для экземпляра BehaviorSubject.

Я ответил на ваш вопрос?

Если нет, предоставьте фрагмент кода, чтобы мы могли лучше понять проблему.

...