320x100
exit | close | |
발생 시점 | 메인 스레드가 종료될 때 | 메인 스레드 포함 스트림이 닫혔을 때 |
예제
예제 코드이다. ffmpeg는 동영상 관련 명령어라 생각하면 된다.
const ffmpegProcess = spawn('ffmpeg', ['-i', 'input.mp4', '-f', 'mp4', '-']);
const writeStream = fs.createWriteStream('output.mp4');
ffmpegProcess.stdout.pipe(writeStream);
ffmpegProcess.on('exit', (code) => {
console.log(`exit 이벤트 발생 (코드: ${code})`);
});
ffmpegProcess.on('close', (code) => {
console.log(`close 이벤트 발생 (코드: ${code})`);
});
이 상황에서 ffmpeg로 동영상을 생성하는데,
ffmpeg명령어가 끝났지면 writeStream에 남아있을 수 있다.
그러면 ffmpeg의 exit가 먼저 발생하고, writeString의 close가 다음 발생하고, ffmpeg의 close가 발생한다
이 상황을 일상에 비유하자면
샤워를 실행하였고(spawn ffmpeg),
샤워라는 명령어를 수행하고 마지막 명령어까지 수행하였고(data)
수도꼭지를 잠궜고(exit),
호수에 있던 물이 모두 빠져나오자 물이 멈췄다(close)
반응형
'프로그래밍 > NodeJS' 카테고리의 다른 글
[NodeJS] 프롬프트 기반 입출력 처리 (0) | 2024.09.23 |
---|---|
[NodeJS] Sematic URL여러개를 하나의 변수로 받아오기 (0) | 2023.03.02 |
npm nodemodules import하기 (0) | 2023.01.30 |
[JS] webserver 최대 크기 문제 해결(feat. dropzone) (2) | 2022.12.18 |
nodejs&nginx 연동하기 (0) | 2022.12.04 |
댓글