node에서 .on() 메소드가 이벤트 리스너 등록할 때 사용하는 메소드잖아?


예를들면 


const EventEmitter = require('events');


class MyEmitter extends EventEmitter {}


const myEmitter = new MyEmitter();

myEmitter.on('event', function() {

  console.log('an event occurred!');

});

myEmitter.emit('event');


와 같은 코드에서는 on으로 listner를 등록하고 emit으로 이벤트를 트리거하는 식이라

an event occurred! 가 출력되는건데 내가 이해가 안되는건


var fs = require('fs');


var infile = fs.createReadStream('./output.txt', {flags : 'r'});

var outfile = fs.createWriteStream('./output2.txt', {flags : 'w'});


infile.on('data', function(data) {

    console.log('읽어 들인 데이터', data);

    outfile.write(data);

});


infile.on('end', function() {

    console.log('파일 읽기 종료.');

    outfile.end(function() {

        console.log('파일 쓰기 종료');

    });

});



여기서는 .emit() 메소드가 없는데도 왜 출력창에는 console.log의 내용들이 다 출력되는거야 ㅜㅜ?