
2.3
オブザーバパターン
41
ドが呼び出されたときの引数が渡される点に注意してください。
2.3.2
EventEmitter
の使用例
では
EventEmitter
の実際の使用例を見てみましょう。もっとも簡単な使い方は、インスタンスを
生成して即座に使うというものです。ここではファイル中に特定のパターンが見つかった場合にイベン
トを通知する関数を実装しています(
12_observer_event_emitter_find_pattern
)。
const EventEmitter = require('events').EventEmitter;
const fs = require('fs');
function findPattern(files, regex) {
const emitter = new EventEmitter();
files.forEach(function(file) {
fs.readFile(file, 'utf8', (err, content) => {
if (err)
return emitter.emit('error', err);
emitter.emit('fileread', file);
let match;
if (match = content.match(regex))
match.forEach(elem => emitter.emit('found', file, elem));
});
});
return emitter; ...