RxJS 5 из observable subscribe вызывается дважды

Я пытаюсь ответить на слияние наблюдаемых событий touch и mousedown, чтобы переключить меню open / close. Проблема в том, что код для управления переключателем выполняется дважды. Я подтвердил это, зарегистрировав событие в консоли, и это то же самое событие, которое регистрируется:

export const toggleMenu = (openButton, closeButton) => {
  return Observable.merge(
    Observable.fromEvent(openButton, 'mousedown'),
    Observable.fromEvent(closeButton, 'mousedown'))
      .subscribe((event) => {
        console.log(event);
        if (elementIsVisible(nav)) {
          hideElement(nav);
        } else {
          showElement(nav);
        }
      });
};

Таким образом, это заканчивается открытием, а затем сразу закрывает меню.

1 ответ

  1. Ладно, это была моя ошибка. Фактический разнесенный код в порядке, но я создавал экземпляр класса, который вызывал эту функцию дважды, поэтому было две подписки.