本文共 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/