2016-11-03 103 views
0

我試圖響應觸摸和mousedown事件的合併觀察來切換菜單打開/關閉。問題是處理切換的代碼運行兩次。我已經通過記錄事件到控制檯證實了這一點,而且它是被記錄在同一事件:RxJS 5 fromEvent可觀察的訂閱被調用兩次

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); 
     } 
     }); 
}; 

所以這結束了開,然後立即關閉菜單。

+0

你可以在jsbin或其他地方做一個演示嗎? – martin

+0

什麼是事件打印輸出(代碼中的第6行)? – Meir

回答

0

好的,這是我的錯誤。實際發佈的代碼很好,但是我實例化了兩次調用這個函數的類,所以有兩個訂閱。