events

更新


イベントとは


EventEmitterクラス

onメソッド: リスナー登録

emitメソッド: イベント発行

const EventEmitter = require('events')
const myEmitter = new EventEmitter()

// 登録
myEmitter.on('myEvent', console.log)
myEmitter.on('myEvent', (x, y) => console.log(x + y)) // 2番目リスナー
console.log(1)

// 発行
myEmitter.emit('myEvent', 2, 3)
console.log(6)

出力

1
2 3
5
6

同期的

イベント型のコアモジュール


onceメソッド

myEmitter.on('myEvent', console.log)
myEmitter.once('myEvent', x => console.log(x * 10))
myEmitter.emit('myEvent', 1) // 1 10
myEmitter.emit('myEvent', 2) // 2

非同期にするとき

myEmitter.on('myAsyncEvent', x => {
  setImmediate(console.log, x) // 非同期
})
myEmitter.emit('myAsyncEvent', 2) // 後
console.log(1) // 先

errorイベント

myEmitter.on('error', error => {
  console.log(error.message)
})
myEmitter.emit('error', new Error(1)) // 1 (終了しない)
console.log(2) // 2