【问题标题】:Eventlistener function is undefined?事件监听函数未定义?
【发布时间】:2022-01-11 13:23:46
【问题描述】:

当单击按钮时,我希望移除事件侦听器。

function clickMe(f,i){
      ipcRenderer.send('click', i)

      ipcRenderer.on(`message`, function (en, message) {
        document.getElementById(`status${i}`).innerHTML = message[1];
        //ipcRenderer.removeAllListeners('message') <- I don't want all listeners to be removed
      });
}

如上面的代码所示,removeAllListeners 有效,但是,我不希望删除所有侦听器。我相信我可以使用removeListener('message', function),但如果我尝试输入removeListener('message', startMe()),我会得到一个未定义的错误。我该怎么做呢?

【问题讨论】:

    标签: javascript node.js electron


    【解决方案1】:

    该方法称为removeEventListener,它将您要删除的函数作为其第二个参数。 您无法删除它,因为该函数是匿名的。如果你使用命名函数,它应该可以工作:

    function onMessage = function (en, message) {
        document.getElementById(`status${i}`).innerHTML = message[1];
        ipcRenderer.removeEventListener('message', onMessage);
    }
    
    function clickMe(f,i){
          ipcRenderer.send('click', i)
          ipcRenderer.on('message', onMessage);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 2018-02-25
      • 2017-02-18
      • 1970-01-01
      相关资源
      最近更新 更多