Node.js 的 Stream API 提供了一种处理流数据的方式。流可以是可读的(Readable)、可写的(Writable)或双工的(Duplex)。当一个流完成其数据的读取或写入时,会触发 'end'
事件。
on 'end'
事件等待流的 'end'
事件通常是为了确保所有数据都已处理完毕后再执行后续操作。以下是一个简单的示例,展示了如何等待可读流的 'end'
事件:
const fs = require('fs');
// 创建一个可读流
const readStream = fs.createReadStream('large-file.txt');
// 监听 'data' 事件,处理数据块
readStream.on('data', (chunk) => {
console.log(`Received ${chunk.length} bytes of data.`);
});
// 监听 'end' 事件,表示数据已全部读取
readStream.on('end', () => {
console.log('Finished reading the file.');
// 在这里执行后续操作
});
// 监听 'error' 事件,处理可能出现的错误
readStream.on('error', (err) => {
console.error(`An error occurred: ${err.message}`);
});
'end'
事件没有被触发?pause()
或 stop()
方法,这些方法可能会阻止 'end'
事件的触发。const fs = require('fs');
const readStream = fs.createReadStream('large-file.txt');
readStream.on('data', (chunk) => {
console.log(`Received ${chunk.length} bytes of data.`);
});
readStream.on('end', () => {
console.log('Finished reading the file.');
// 在这里执行后续操作
});
readStream.on('error', (err) => {
console.error(`An error occurred: ${err.message}`);
});
通过以上信息,你应该能够理解如何等待 Node Stream API 的 'end'
事件,并解决相关的问题。
领取专属 10元无门槛券
手把手带您无忧上云