Javascript 每次读取数据块后等待-节点JS
我有以下代码:Javascript 每次读取数据块后等待-节点JS,javascript,node.js,buffer,settimeout,fs,Javascript,Node.js,Buffer,Settimeout,Fs,我有以下代码: var fs = require('fs'); var myReadStream = fs.createReadStream('readMe.txt') myReadStream.on('data', function(data_chunk){ setTimeout(function(){ console.log('chunk read:') console.log(data_chunk) },2000) }) 这样做的目的是在开始时等待2秒钟,然后将所
var fs = require('fs');
var myReadStream = fs.createReadStream('readMe.txt')
myReadStream.on('data', function(data_chunk){
setTimeout(function(){
console.log('chunk read:')
console.log(data_chunk)
},2000)
})
这样做的目的是在开始时等待2秒钟,然后将所有块一起输出。我想做的是每次读取和输出块时,我希望它在下次读取和输出之前等待2秒钟。如何修改代码?要控制流的流量,可以使用
.pause()
&.resume()
您也可以改用event,并在准备获取下一个块时调用read
:
myReadStream.on('readable', async function(){
await new Promise(resolve => setTimeout(resolve, 2000));
while (null !== (chunk = myReadStream.read())) {
console.log('chunk read:')
console.log(chunk)
await new Promise(resolve => setTimeout(resolve, 2000));
}
})
当使用readable.read()处理数据时,while循环是必需的。
只有在readable.read()返回null之后,才会发出“readable”
myReadStream.on('readable', async function(){
await new Promise(resolve => setTimeout(resolve, 2000));
while (null !== (chunk = myReadStream.read())) {
console.log('chunk read:')
console.log(chunk)
await new Promise(resolve => setTimeout(resolve, 2000));
}
})