假设我有一个可读流,如下所示:
const strm = fs.createReadStream(file);
strm.on('data', function onData(d){});
我的问题是,onData
回调会在事件循环的下一个滴答声中触发吗?或者是否有可能onData
在事件循环的同一滴答声中调用处理程序两次?
假设我有一个可读流,如下所示:
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');
输出:
数据数据下一个刻度