方法1. 回调函数方式

将异步方法如readFile封装到一个自定义函数中,通过将异步方法得到的结果传给自定义方法的回调函数参数。具体如下(以fs模块的readFile方法为例):

//封装
var func = function(filePath,callback){
fs.readFile(filePath, function(err, data){
if(err){
return false;
}
callback(data);
})
} //调用
func('./a.txt', function(res){
//处理异步方法返回得到的数据
console.log(res);
})

 方法2. 事件驱动方式

使用node events模块,利用其EventEmitter对象广播和接收广播的方式传输异步方法返回的结果。具体如下(仍以fs模块的readFile异步方法为例):

var events = require('events');

var EventEmitter = new events.EventEmitter();
fs.readFile('./a.txt', function(err, data){
//数据读取后发出readData信号的广播,并将数据data传出
EventEmitter.emit('readData', data);
}) //监听readData信号,并对监听到的数据做处理(也可先定义监听,再做异步的读取操作)
EventEmitter.on('readData', function(res){
//处理异步读取得到的数据
console.log(res);
})

最新文章

  1. SpringMVC学习记录2
  2. C# 非模式窗体show()和模式窗体showdialog()的区别(转)
  3. easyui-menu 宽度自适应
  4. easyUI单元格合并自定义封装
  5. 多进程和atexit清理函数
  6. Myeclipse SVN错误 443
  7. Java:基本数据类型包装类
  8. Debian 7 64位安装 wine
  9. js中String对象
  10. Duanxx的技术问题:word界面显示模糊
  11. codecomb 2093【牛宫】
  12. 使用VS创建WebPart部件,并部署到SP(待修改)
  13. tp框架实现文件上传
  14. Django-环境搭建
  15. 使用生成器把Kafka写入速度提高1000倍
  16. 非关系型数据库之Redis
  17. $.ajax()方法详解 ajax之async属性 【原创】详细案例解剖——浅谈Redis缓存的常用5种方式(String,Hash,List,set,SetSorted )
  18. 尚硅谷springboot学习29-docker常用命令和操作
  19. Java SE之正则表达式Demo
  20. Caused by: java.io.FileNotFoundException: class path resource [spring/springmvc.xml] cannot be opene

热门文章

  1. .NET Worker Service 作为 Windows 服务运行及优雅退出改进
  2. centos 7 显示系统执行的进程
  3. 关于Maven repository中pom.xml的jar包依赖
  4. linux下的对拍程序
  5. SprignBoot是如何访问工程目录下的静态资源?
  6. Java源码分析:Guava之不可变集合ImmutableMap的源码分析
  7. Java通用树结构数据管理
  8. css--flex弹性布局详解和使用
  9. 办公利器!用Python快速将任意文件转为PDF
  10. 其实 Linux IO 模型没那么难