• nodejs中的异步读取文件


    用一个例子吧,比如需要读取三个 txt 文件,在js代码中其他的代码部分和读取这三个文件需要进行一步读取,

    回调函数方法 : 

    console.log('执行任务 001 ');
    fs.readFile(
    '../01.txt','utf-8', function(error,data){ console.log('读取文件01 : ',data); fs.readFile('../02.txt','utf-8', function(error,data){ console.log('读取文件02 : ',data); fs.readFile('../03.txt','utf-8', function(error,data){ console.log('读取文件03 : ',data); }) }) })
    console.log(
    '执行任务 002 ');

    执行结果如下 : 

    执行任务 001
    执行任务 002
    读取文件01 :  11111
    读取文件02 :  2222
    读取文件03 :  333

    Promise 方法 : 

    console.log('执行任务 001 ');
    function read(url){
        return new Promise((resolve,reject)=>{
            fs.readFile(url,'utf-8',function(err,data){
                if(err) return reject(err);
                resolve(data)
            })
        })
    }
    
    read('../01.txt').then(function(data){
        console.log('读取文件01 : ',data)
    },function(err){
        console.log('读取文件01错误 : ',err)
    });
    read('../02.txt').then(function(data){
        console.log('读取文件02 : ',data)
    },function(err){
        console.log('读取文件02错误 : ',err)
    });
    read('../03.txt').then(function(data){
        console.log('读取文件03 : ',data)
    },function(err){
        console.log('读取文件03错误 : ',err)
    });
    console.log('执行任务 002');

    执行结果如下 : 

    执行任务 001
    执行任务 002
    读取文件01 : 11111
    读取文件03 : 333
    读取文件02 : 2222

    async await 方法 : 

    console.log('执行任务 001 ');
    function read(url){
        return new Promise((resolve,reject)=>{
            fs.readFile(url,'utf-8',function(err,data){
                if(err) return reject(err);
                resolve(data)
            })
        })
    }
    async function result(){
        let content1 = await read('../01.txt','utf-8');
        console.log("async方法异步读取content1 : ",content1)
        let content2 = await read('../02.txt','utf-8');
        console.log("async方法异步读取content2 : ",content2)
        let content3 = await read('../03.txt','utf-8');
        console.log("async方法异步读取content3 : ",content3)
    };
    result();
    console.log('执行任务 002 ');

    以上代码值执行结果如下 : 

    执行任务 001
    执行任务 002
    async方法异步读取content1 :  11111
    async方法异步读取content2 :  2222
    async方法异步读取content3 :  333

     

  • 相关阅读:
    Centos7配置编译Tenflow1.15 GPU版本笔记
    今年有哪些便宜的国外域名注册商?
    VPS,域名,主机,建站主题,2020黑色星期五优惠大放送
    这些个挂机项目,赚点小钱玩玩
    WPF管理系统开发框架搭建指南,2020从入门到放弃
    智和信通助力荆门电教馆及六所市直学校实现网络智能化运维管理
    智和网管平台政企信创网管监控运维可视化方案
    智和网管平台与统信操作系统完成认证 强力支撑信创国产替代进程
    GIT基础操作与理解
    高数复习一(数列极限)
  • 原文地址:https://www.cnblogs.com/rose-sharon/p/11295557.html
Copyright © 2020-2023  润新知