전에 한번 확인 했던 것 같은데 stream 을 만들어 쓸려니까 또 까먹었다..
테스트 소스:
https://gist.github.com/jclab-joseph/d4258a4f8c2d19c15ccc8dfb27540f16
Readable Stream 에서 push 할 때 그냥 callback 으로 기다리게 하면 좋을려만..
과정은 이렇다.
- this.push 의 return 이 false 이면 내부 버퍼가 다 찬 것이다. (실제 고정 버퍼는 아니고 highWaterMark 사이즈를 넘었다는 것이다. 따라서 다시 push 할 필요는 없다. 버퍼링 된 것이다.)
- 버퍼가 비워지면 다시 _read 가 호출된다. 그러면 다시 push 가 가능하다. (this.push 가 false 가 되면, Duplex 또는 Transform 에서는 _write 의 callback 을 다시 _read 가 호출 되었을 때 실행하면 된다)
...
라고 생각했는데 뭔가 더 있는듯... 복잡한 상황이 되니 이대로는 잘 작동하지 않는다..
어케해야하는거야;;
걍 소스 버그였음..
반응형
'개발 및 운영 > Node.JS' 카테고리의 다른 글
잘 되던 TypeOrm 이 RepositoryNotFoundError 을 뱉음 (0) | 2022.06.15 |
---|---|
멈춘 Promise 디버깅 하기 (0) | 2020.04.27 |
asn1-stream: Node.JS asn1 stream 파서 (1) | 2020.01.21 |
wip: node.js C++ Embedding에 대해... (0) | 2020.01.12 |
javascript Error: UnsupportedEnvironment (0) | 2019.12.05 |
댓글