gpt4 book ai didi

javascript - Node.js 中的 fs.createReadStream 内部如何工作

转载 作者:行者123 更新时间:2023-12-03 03:57:44 25 4
gpt4 key购买 nike

我无法理解 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');

在此代码中,文件中的 block 何时开始流式传输?

当我们在线声明一个对象时?

var stream = fs.createReadStream(__dirname + '/read.text');

在这条线上?

 stream.on('data', function(chunk){
console.log('new chunk arrived');
console.log(chunk);
console.log('');
})

或者当整个代码被执行时?

同步还是异步?

如果您逐行解释代码,我将不胜感激。

最佳答案

javascript 是完全异步的,

函数createReadStream按以下顺序调用事件,

  • 打开:您的文件存在并且已打开
  • data:nodejs读取每个 block 的内容并调用数据事件(默认大小:64kb)
  • 结束:所有数据都在流中
  • close:文件关闭

在行

var stream = fs.createReadStream(__dirname + '/read.text');

你创建了一个流,是空的,但是获取数据的过程启动,订阅事件从未启动过程,

关于javascript - Node.js 中的 fs.createReadStream 内部如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44861708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com