작성
·
169
0
답변 3
0
아, 기존 pipe에 on을 붙이시면 안되고요
const ws = fs.createWriteStream;
ytdl.....pipe(ws)
ws.on('finish', resolve)
이렇게 롸이트스트림을 변수로 분리하신 후 롸이트스트림에 연결해주셔야 하네요.
0
on('finish')를 이용하여 console에 찍히는 과정을 보면 에러가 발생하거나 프로세싱이 완료되지 않았을 때도 'finish' 이벤트로 들어가게 되어 동기적으로 작동하지 않게 됩니다ㅜㅜ..
공식문서에 프로세싱이 완료되었을 때, 발생하는 이벤트가 'end' 이벤트라 작성되어 있어서 'end' 이벤트가 완전히 종료된 이후 resolve 해야 원하는 방식으로 작동할 것 같은데 'end' 이벤트가 발생한 후 resolve는 못하는 건가요??
0
저기에 on 부분을 아래 pipe(writeStream) 아래에 달아주세요. 그래야 writeStream이 끝난 후 실행됩니다.
그리고 end는 finish로 대체해서 달아주세요. pipe(fs.writeStream).on('finish')