2

假设我有一个可读流,如下所示:

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

我的问题是,onData回调会在事件循环的下一个滴答声中触发吗?或者是否有可能onData在事件循环的同一滴答声中调用处理程序两次?

4

1 回答 1

0

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

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'); 

输出:

数据数据下一个刻度

于 2018-05-01T01:52:12.403 回答