博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
node异步操作与闭包函数
阅读量:2066 次
发布时间:2019-04-29

本文共 884 字,大约阅读时间需要 2 分钟。

readMain2.js代码:

//异步读取文件,如何实现等待异步操作完毕后再关闭主程序?采用闭包的方式。不然的话会出现异步尚未完成,主程序已关闭的情况
//闭包函数就是在某个函数里面在放一个函数
var http = require('http');
var readfile2=require('./readfile2');

http.createServer(function (request,response){

    response.writeHead(200,{'Content-Type':'text/html;charset=utf-8'});
    if(request.url!="/favicon.ico"){ //清楚第二次访问

        function recall(data){//创建一个闭包回调函数

            response.write(data);
            response.end('ok');//操作完异步读取后,执行函数再关闭主程序
        }

        readfile2.readfileAsync('./index.html',recall);//异步读取文件

        console.log('主程序执行完毕');

    }
}).listen(8001);

readfile2.js的代码:
var fs=require('fs');
module.exports={
    readfileSync:function(path){//同步读取
        var data=fs.readFileSync(path,'UTF-8');
        console.log(data);
        console.log('同步读取已完成');
    },
    readfileAsync:function(path,recall){
        fs.readFile(path,function(err,data){
            if(err){
                console.log(err);
            }else{
                console.log(data.toString());
                recall(data);
            }
        });
        console.log('异步读取已完成');
    }
}

转载地址:http://vzkmf.baihongyu.com/

你可能感兴趣的文章
C语言字符、字符串操作偏僻函数总结
查看>>
Git的Patch功能
查看>>
分析C语言的声明
查看>>
TCP为什么是三次握手,为什么不是两次或者四次 && TCP四次挥手
查看>>
C结构体、C++结构体、C++类的区别
查看>>
进程和线程的概念、区别和联系
查看>>
CMake 入门实战
查看>>
绑定CPU逻辑核心的利器——taskset
查看>>
Linux下perf性能测试火焰图只显示函数地址不显示函数名的问题
查看>>
c结构体、c++结构体和c++类的区别以及错误纠正
查看>>
Linux下查看根目录各文件内存占用情况
查看>>
A星算法详解(个人认为最详细,最通俗易懂的一个版本)
查看>>
利用栈实现DFS
查看>>
逆序对的数量(递归+归并思想)
查看>>
数的范围(二分查找上下界)
查看>>
算法导论阅读顺序
查看>>
Windows程序设计:直线绘制
查看>>
linux之CentOS下文件解压方式
查看>>
Django字段的创建并连接MYSQL
查看>>
div标签布局的使用
查看>>