Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 每次读取数据块后等待-节点JS_Javascript_Node.js_Buffer_Settimeout_Fs - Fatal编程技术网

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));
   }
})