在 Node.js 中,我有一个可读流:
var rs = new (require('stream').Readable);                                                                                                                                                                                                    
rs._read = function(size) {                                                                                                                                                                                                                   
  // Implementation. 
}   
此流在此 HTTP 服务器实例中读取:
var http = require('http');
var server = http.createServer(function(req, res) {                                                                                                                                                                                           
  var size = require('url').parse(req.url, true).query.size;                                                                                                                                                                                  
  if (size) {    
    rs.pipe(res);                                                                                                                                                                                                                        
    rs.read(parseInt(size));
  }                                                                                                                                                                                                                                           
  res.end('');                                                                                                                                                                                                                                
});                                                                                                                                                                                                                                           
server.listen(3001, function() {                                                                                                                                                                                                              
  console.log('Listening on 3001');                                                                                                                                                                                                           
});   
现在,当 I 时curl localhost:3001/?size=n,其中 n 是任意整数,sizeinrs._read(size)始终是 16384!这个数字是流的默认值state.highWaterMark,因为在中rs._read()被调用。谁能解释一下?如果不使用参数,它的意义何在?this._read(state.highWaterMark);lib/_stream_readable.jssize
谢谢你。