说我有一个可读的流,像这样:

const strm = fs.createReadStream(file);
strm.on('data', function onData(d){});


我的问题是,onData回调是否在事件循环的下一个触发时触发?还是onData处理程序可能在事件循环的同一滴答中被调用两次?

最佳答案

数据处理程序可以在事件循环的同一滴答中触发多次,请参阅:

https://github.com/nodejs/help/issues/1222


  是:


const stream = require('stream');
const readable = new stream.Readable({read(){}});
readable.on('data', () => console.log('data'));
process.nextTick(() => console.log('next tick'));
readable.push('foo');
readable.push('foo');



  输出:
  
  数据下一跳

10-05 20:40