1 回答

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊
一種更簡(jiǎn)單的方法,也使用更少的內(nèi)存并并行化寫(xiě)入(在塊到達(dá)時(shí)寫(xiě)入塊)并且應(yīng)該更快一點(diǎn),那就是將流直接通過(guò)管道傳輸?shù)捷敵鑫募?/p>
readStream.pipe(fs.createWriteStream("test.jpg"));
readStream.on('close', () => {
console.log("all done now");
});
或者,通過(guò)更好的錯(cuò)誤處理,可以捕獲兩個(gè)流上的錯(cuò)誤并告訴您一切何時(shí)完成:
const { pipeline } = require('stream');
pipeline(readStream, fs.createWriteStream("test.jpg"), err => {
if (err) {
console.log(err);
} else {
console.log("all done");
}
});
或者,使用 Promise 和pipeline():
const pipeline = util.promisify(require('stream').pipeline);
pipeline(readStream, fs.createWriteStream("test.jpg")).then(() => {
console.log("all done");
}).catch(err => {
console.log(err);
});
添加回答
舉報(bào)