FS#createReadStream
メソッドを使用してファイルを読み込んでおり、#pipe()
メソッドを使用して書き込み可能なストリームにパイプしています。このように:.pipe()メソッドを使用した後でReadStreamを閉じるべきでしょうか
const stream = fs.createReadStream(...);
const transformedStream = imgStream.pipe(someTransformer).pipe(anotherTransfomer);
// do something with transformedStream
は#createReadStream()
方法のドキュメントでは、私はit hasautoClose
パラメータがtrue
にデフォルトで設定されたことがわかりました。
、反対側から、私はこのin documentation of #pipe()
methodが見つかりました:
一つの重要な注意点は、読み込み可能なストリーム処理中にエラー を発する場合は、書き込み可能な先が自動的に を閉じていないということです。エラーが発生した場合は、手動でメモリリークを防ぐために各ストリームを閉じることが必要です( )。全くのノードJSに
私は閉じてください読み書き可能なストリーム:
は、だから私は2つの質問がありますか? (手動でtry-finally
ブロックを使用)。またはストリームが自動的に閉じられますか?
ストリームを閉じるにはどうすればいいですか?#pipe()
メソッドを使用している場合にのみ、ストリームを閉じる必要がありますか?あなたは、あなたはそれを終了するunpipeを使用することができ、パイプ・イベントを使用している場合
ありがとう、私は少し構造化されるために私の質問を編集しました。あなたは両方の質問に答えてください。 – MyTitle
私の答えを編集しました。 – Benjamin