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의 내용들이 다 출력되는거야 ㅜㅜ?
로그붙여봐
로그 업뎃했으 !
처음건 처음코드 두번째건 두번째코드
저기 infile.on() 에서의 on()메소드가 EventEmitter의 on()메소드로 알고있는데 emit()없이 트리거(출력)되는이유를 모르겠어 ㅜㅜ
data 나 end는 fs.stream의 기본 이벤트 아님? 대충 봐서는 그런 구조 인거 같르네
https://www.w3schools.com/jquery/event_on.asp
http://api.jquery.com/on/
jquery, nodejs , javascript 다 거기서 거기니까 참고해서 보삼
고마워형들!
나밖에 없는데 왜 형들이니
아하 아이피가 다르길래 ㅋㅋㅋ 고마워횽