《深入浅出node.js》 P77 学习

///用于处理多个事件对应一个侦听器的情况var count = 0;
var results = {};
var done = function (key, value){results[key] = value;count++;if (count === 3){///渲染页面
        render(results);}
};fs.readFile(template_path, "utf8", function(err, template){done("template", template);
});
db.query(sql, function(err, data){done("data", data);
});
lion.get(funciton (err, resources){done("resources", resources);
});///2015-10-14 11:05:49
///使用偏函数来处理哨兵变量和第三方函数的关系
var after = function (times, callback) {var count = 0, results = {};return function (key, value){results[key] = value;count++;if (count === times) {callback(results);}};
};var done = after(times, render);
///事实上这是在对done作初始化,同时初始化的还有done的属性count, results
///如果再用after初始化另外一个函数,则二者之间的count和results互不相干。
done = function (key, value){results[key] = value;count++;if (count === times) {callback(results);}
}emitter.on("done", done);
///事实上是
emitter.on("done", function(key, value){results[key] = value;count++;if (count === times) {callback(results);}
})emitter.emit("done", "template", template);///监听到事件之后,运行的函数变成:
emitter.on("done", function("template", template){functionbody;
})

转载于:https://www.cnblogs.com/lswit/p/4876906.html

node.js 多异步之间的协作方案相关推荐

  1. 多个异步之间的协作方案

    一般而言,事件与侦听器的关系是一对多,但在异步编程中,也会出现事件与侦听器的关系是多对 一的情况,也就是说一个业务逻辑可能依赖两个通过回调或事件传递. AOP 模式 lodash 就有 after,在 ...

  2. Node.js 和 Python之间如何进行选择?教你一招搞定

    最近,Node.js 和 Python 都因其广泛的特性和功能在市场上大受欢迎.在你开发Web应用程序的后端时,这两种技术都是你的首选. 众所周知,每个项目都有其自己的规范和需求,因此,选择一个合适的 ...

  3. node.js的异步

    2019独角兽企业重金招聘Python工程师标准>>> node.js 的异步一般是通过回调函数的方式来实现的 这种方式 模块.回调方法名(参数,function(参数){回调处理 ...

  4. 理解Node.js的异步非阻塞I/O模型

    对后台服务器编程不清楚,通过在网上查资料也就大概有写了解. Apache对并发请求的处理方式是,对每个请求就创建一个线程处理,这个线程是堵塞的.因为线程的是占用内存的,所以一台服务器能支持的并发线程量 ...

  5. 前端学习(1321):node.js得异步api

    const fs = require('fs');fs.readFile('./1.txt', 'utf8', (err, result1) => {console.log(result1);f ...

  6. [Dnode]基于Node.js给浏览器提供异步远程方法调用

    Dnode介绍 Dnode是一个提供异步双向远程方法调用的类库.网络socket和websocket风格的socket.io通信已经成为可能,所以系统的进程之间可以相互通信并且可以与运行在浏览器端的用 ...

  7. PHP和Node.js开发之间有什么区别

    在很长一段时间内,决定在Node.js和PHP之间进行选择是一件很麻烦的事情,但对于后端程序员来说,这一直很麻烦,但它从未影响过开发人员.但是事情很快就发生了变化,现在开发人员必须选择其中之一.Nod ...

  8. node.js 使用domain模块捕获异步回调中的异常

    和其他服务器端语言相比,貌似node.js 对于异常捕捉确实非常困难. 首先你会想到try/catch ,但是在使用过程中我们会发现并没有真正将错误控制在try/catch 语句中. 为什么? 答案是 ...

  9. node.js异步编程

    目录 1.同步API 2.异步API 回调地狱 用promise解决回调地狱 异步函数 Node服务器端编程 1.同步API 只有在当前的API执行完成后,才执行下一个API.代码的执行方式是按照代码 ...

最新文章

  1. 【Mongodb】 Replica set的主从切换测试
  2. STM32工作笔记0098---Windows下的Linux环境_Cygwin_MinGW_MSYS_MSYS2_之间的关系
  3. ios开发 方形到圆的动画_3Blue1Brown 动画制作教程(1)--制作第一个自己的动画
  4. 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0” 提供程序解决办法
  5. 在linux下安装gaussian09
  6. 中国行政区边界shp下载(省,市,县)
  7. 如何从官网下载hibernate
  8. git创建本地版本仓库
  9. 人体神经系统分类图解,人体神经系统分类图片
  10. 单片机蓝桥杯之LED点亮(国信CT107D开发板)
  11. 自己动手编译NodeMCU固件
  12. c语言字符串作业题,C语言课后习题练习(四)
  13. windows终端终端_Windows终端机完整指南
  14. heading pitch bank
  15. ubuntu 找不到固态硬盘
  16. uva12657 移动盒子
  17. HBCPC2017 C++ 训练题 春游 超级密码
  18. 趣图:新手 vs 老鸟
  19. 国际奥委会主席巴赫考察冬奥场馆 为中国效率点赞
  20. 算法时间复杂度以及代码实现

热门文章

  1. 2019年AI实力对决:美国领跑,中国追赶,欧盟弱势
  2. 学历对程序员重要么?
  3. my25_Mysql操作技巧汇总
  4. 始于阿里,回归社区:阿里8个项目进入CNCF云原生全景图
  5. mysql字段中去掉括号
  6. 以太坊开发者工具的最新清单
  7. Hive神兽大厅源码搭建安装及使用
  8. Android中获取系统内存信息以及进程信息-----ActivityManager的使用(一)
  9. jQuery实现拖动布局并将排序结果保存到数据库
  10. SDN/NFV步入规模部署期 运营商拓智能化成大势所趋