如何理解:由于 BrowserWindow 模块是一个 EventEmitter, 所以您也可以为各种用户事件添加处理程序?

由于 BrowserWindow 模块是一个 EventEmitter, 所以您也可以为各种用户事件 ( 例如,最小化 或 最大化您的窗口 ) 添加处理程序。

如何理解这句话呢?

回复
阅读 733
2 个回答

意思是 BrowserWindow 是继承 EventEmitter

import { EventEmitter } from 'node:events'

class BrowserWindow extedns EventEmitter {
  // ...
}

所以支持其所有用法

const win = new BrowserWindow({ width: 800, height: 600 })

例如:

  • 注册监听

    win.on('yourCustomEvent', (...args) => {
      console.log('发射的参数: ', ...args)
    })
  • 发射事件

    win.emit('yourCustomEvent', '参数1', '参数2', '参数3')

BrowserWindow 会发射一些实例事件,可以自己监听处理,例如:

win.on('minimize', () => {
  console.log('窗口最小化')
})

window.addEventListener 方法,浏览器触发的就是 onclick 什么的,你可以监听一个其他的,比如说 fadeout。然后可以 dispatchEvent 触发自定义的事件。

window.addEventListener('fadeout', console.log.bind(console, '测试 fadeout'))
window.dispatchEvent(new Event('fadeout'))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏