documentation for write()는 말한다 : 거짓Node.js를 '쓰기 스트림과 드레인 이벤트
반환 커널 버퍼가 꽉 찼다는 것을 알리기 위해, 데이터는 미래에 발송됩니다.
과 drain
이벤트에 대한 문서
가 false를 반환,이 이벤트가 다시 작성하는 안전하다는 것을 나타 내기 위해 방출된다.
그 의미는 무엇입니까? 다시 쓰기 전에 drain
이벤트를 기다려야합니까? 내가 쓰려고했던 데이터에는 어떤 변화가 있었습니까? 잃어버린거야? drain
이벤트를 기다리지 않고 쓰기를 호출하면 어떻게됩니까?
()'은'res.write' 여전히 사용자 메모리에 버퍼링되는 동안 (즉, 커널 버퍼로 플러시되지 않음)? 응답이 없어지나요? – Emmett
@Emmett 예, 버퍼링 된 쓰기 호출이 남아있을 때'process.exit() '를 호출하면 플러시 대상 데이터가 손실됩니다. – TooTallNate
"반환 값에 신경 쓰지 않고 write()'를 호출하는 것은 전적으로 안전하지 않습니다." [현재 문서] (https://nodejs.org/dist/v8.4.0/docs/api/stream.html)는 다음과 같이 말합니다 : _ "유출되지 않은 스트림에서 write()를 호출하는 것이 허용되는 동안, Node .js는 최대 메모리 사용량이 발생할 때까지 모든 기록 된 청크를 버퍼링합니다.이 시점에서 무조건 중단됩니다. 중단되기 전에 메모리 사용량이 많으면 가비지 수집기 성능이 떨어지고 RSS가 많이 발생합니다 (일반적으로 시스템에 다시 릴리스되지 않음). 메모리가 더 이상 필요하지 않으면). "_ 참조 : https://stackoverflow.com/q/37579605 – TachyonVortex