질문은 실제로 이미 Brad에 의해 질문됩니다. 그러나 나는 아직 실제로 질문을 찾지 못했습니다. 읽을 수있는 이벤트 핸들러 내부에 readable.read()
을 반복적으로 호출해야합니까? 현재 노드 문서에서 예제 코드는 다음과 같이 읽습니다.Node.js 스트림 readable.read 반복적으로 호출
var readable = getReadableStreamSomehow();
readable.on('readable', function() {
var chunk;
while (null !== (chunk = readable.read())) {
console.log('got %d bytes of data', chunk.length);
}
});
readable.read()
이 반복적으로 호출됩니다. 더 많은 데이터를 사용할 수있을 때
내부 버퍼가 배출되면, 읽을 수있는 이벤트가 다시 발생합니다
문서는 이것에 대해 읽을 수있는 이벤트가 말한다. 당신이 크기 인수를 지정하지 않으면
, 그때는 내부 버퍼에 모든 데이터를 반환합니다
그것은이 약
read()
말한다.
while 루프에서 반복적으로 호출하여 read()
을 호출해야하는 경우가 있습니까? 읽기가 결코 null을 반환하지 않는 경우 모든
그런 다음 설명서의 예제가 수정되어 나타납니다. – huggie
예상 된 v.10 릴리스 (https://dl.dropboxusercontent.com/u/3685/presentations/streams2/streams2-ko.pdf) 이전의 대화에 따르면 null을 반환하는 것은 사양의 일부입니다. 읽을 수있는 이벤트는 null을 반환 한 후에 만 발생합니다. 어쩌면 의사가 while 루프를 사용하는 이유 일 수 있습니다. 어쩌면 그게 왜 필요한거야? 비어있을 때까지 읽지 않으면 null이 반환되지 않았기 때문입니다. – huggie
어쨌든, 다른 readble 이벤트 전에 readable.read()가 반환해야하는 null이 버퍼가 비어 있다는 사실 만 문서에 확실히 반영되지 않습니다. – huggie