Node.js 通过流实现异步读写
利用 Node.js 的流机制,可以实现边读边写,提升读写效率。通过创建可读流和可写流,可以实现数据的异步传输。当可读流读取到数据时,会触发 'data'
事件,此时可将数据写入可写流,并触发 'drain'
事件,从而继续读取数据。当可读流读取完毕后,会触发 'end'
事件,此时关闭可读流。
具体实现如下:
const fs = require('fs');
function pipe(source, target) {
const rs = fs.createReadStream(source, { highWaterMark: 4 });
const ws = fs.createWriteStream(target);
rs.on('data', data => {
const ok = ws.write(data);
if (!ok) rs.pause(); // 暂停读取
});
ws.on('drain', () => rs.resume()); // 恢复读取
rs.on('end', () => ws.end());
}
35.39KB
文件大小:
评论区