读取节点中的文件数据块

时间:2019-07-06 16:59:58

标签: node.js asynchronous

我试图异步使用节点fs.read()从大文件中读取大块数据(100KB)并进行解析 我想对此进行迭代并读取完整的文件,而不会对其进行阻止 谁能建议我如何在下面的代码中使用promise,而不执行下一组代码,直到完成此过程 我可以使用async / await实现这一目标

 var readChunkData = function( position=0){
    fs.open(fileName, "r+", (err,fd) => {
        if(err) throw err;
        var bufferSize =  MAX_BUFFER_SIZE;
        fs.read(fd, Buffer.alloc(bufferSize), 0, bufferSize ,position, (err, bytesRead, buffer) => {  
            fs.close(fd, (err) => {
                if(err) throw err;
            })
            //Some parsing logic usind data read
            parseData(buffer)
            position += MAX_BUFFER_SIZE
            if( position < fileSize)
            {
                readChunkData(position)
            }
            else{
                return;

            }

        })
    })
}

0 个答案:

没有答案