は、サンプルコードは次のとおりです。Nodejs readable.read()の戻りヌル
var fs = require('fs');
var stream= fs.createReadStream('./lib');
console.log(stream.read(10));
リターンはnull。
read()
メソッドが内部バッファから直接データを取得するためだと思います。バッファに十分なデータがない場合、null
が返されます。 read()
メソッドは同期呼び出しであり、コールバックは渡されないので、設計が合理的です。 しかし、私のread()
呼び出しが今すぐポーズされたモードなのでデータを返すことができるように、内部バッファに十分なデータがあることがいつわかりますか?
アップデート1:
イベントreadable
が始めるには良い方法です。しかし、大きなファイルを読み込み、読み込み回数>65536
の場合、nullが返されます。
var fs = require('fs');
var stream = fs.createReadStream('./lib');
stream.on('readable', function() {
var buffer = stream.read(65537);
console.log(buffer.length);
});
私が正確に望むのは、stream.read()は常にEOFまでデータを返すことができます。読み込もうとする前に発射するreadable
イベントの
感謝。私は私のポストを更新して見てください。 'readable'イベントは完全にこの問題を解決できなかったようです。 – BartMao