为什么要破坏stream?

我看到一些在可写stream中pipe道可读stream的模块,如果发生错误,他们使用destroy方法:

const readable = fs.createReadStream("file"); const writable = fs.createWriteStream("file2"); readable.pipe(writable); readable.on("error", (error) => { readable.destroy(); writable.destroy(); writable.removeListener("close"); callback(error); }); writable.on("error", (error) => { readable.destroy(); writable.destroy(); writable.removeListener("close"); callback(error); }); 

什么是摧毁stream和消除可写入streamclosures事件的必要性? 如果我不这样做,会发生什么?

谢谢。