私はpngjsを使っていくつかのPNGを読み書きしています。定期的にこのエラーが発生します:
Error: There are some read requests waiting on finished stream
at ChunkStream._end (/home/mbayazit/qatools/pdiff/node_modules/pngjs/lib/chunkstream.js:107:13)
at ChunkStream.end (/home/mbayazit/qatools/pdiff/node_modules/pngjs/lib/chunkstream.js:94:14)
at PNG.end (/home/mbayazit/qatools/pdiff/node_modules/pngjs/lib/png.js:105:18)
at ReadStream.onend (_stream_readable.js:483:10)
at ReadStream.g (events.js:175:14)
at ReadStream.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:910:16
at process._tickCallback (node.js:415:13)
しかし、プログラム内の行番号はわかりません。
私はいくつかの場所でストリームを扱うだけですが、それらは次のとおりです。
fs.createReadStream(oldScreen).pipe(new PNG).on('parsed', function() {
promises[0].resolve(this);
});
fs.createReadStream(newScreen).pipe(new PNG).on('parsed', function() {
promises[1].resolve(this);
});
と
result.png.pack().pipe(fs.createWriteStream(diffName));
3 つのファイル名が同じになることは決してないため、同じ場所で読み取り/書き込みを行うべきではありません。ただし、以前の失敗した実行からストリームが適切に閉じられなかった可能性があると思います。すべてのストリームを強制的に閉じる方法はありますか?