当我阅读node.js API文档时,会立即想到一句话:“竞争条件”。例如,以下是您在node.js中处理流式文件读取的方式:
const fs = require('fs');
var rr = fs.createReadStream('foo.txt');
rr.on('readable', () => {
console.log('readable:', rr.read());
});
rr.on('end', () => {
console.log('end');
});
但是如果在执行readable
函数之前触发rr.on('readable'...
事件会发生什么?那个观察者不会错过这个事件并且无法读取数据吗?这个观察者模式遍布node.js,所以我猜测有一些内置的方法可以阻止竞争条件,但它是什么?