我无法理解fs.createReadStream在node.js中是如何工作的。
我有示例代码:
var fs = require('fs');
var stream = fs.createReadStream(__dirname + '/read.text');
stream.on('data', function(chunk){
console.log('new chunk arrived');
console.log(chunk);
console.log('');
})
stream.on('close', function(){
console.log('file closed')
})
stream.on('end', function(){
console.log('stream ended')
})
stream.on('open', function(){
console.log('File opened')
});
console.log('one');
console.log('two');
在此代码中,文件中的块何时开始流式传输?
当我们在线声明一个对象?
var stream = fs.createReadStream(__dirname + '/read.text');
在这条线上?
stream.on('data', function(chunk){
console.log('new chunk arrived');
console.log(chunk);
console.log('');
})
或执行整个代码时?
同步还是异步?
如果你逐行解释代码,我将不胜感激。
答案 0 :(得分:0)
javascript是完全异步的,
函数createReadStream按以下顺序调用事件,
在
行var stream = fs.createReadStream(__dirname + '/read.text');
你创建一个流,是空的,但是获取数据的过程开始,suscribing event永远不会启动进程,