博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
node.js 多异步之间的协作方案
阅读量:7230 次
发布时间:2019-06-29

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

《深入浅出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

你可能感兴趣的文章
Linux环境下段错误的产生原因及调试方法小结【转】
查看>>
Linux进程上下文切换过程context_switch详解--Linux进程的管理与调度(二十一)【转】...
查看>>
ubantu系统安装ssh
查看>>
js实现对上传图片的路径转成base64编码,并且对图片进行压缩,实现预览功能...
查看>>
LeetCode OJ:Multiply Strings (字符串乘法)
查看>>
LeetCode OJ:Search in Rotated Sorted Array(翻转排序数组的查找)
查看>>
VLC打开.264文件
查看>>
常用的一些webService
查看>>
Codeigniter开发技巧:连接多个数据库(可实现DB读写分离)
查看>>
Mybatis注意点之#与$区别
查看>>
IP地址分类(A类 B类 C类 D类 E类)
查看>>
RedirectResult,RedirectToRoute
查看>>
解决spark-shell输出日志过多的问题
查看>>
npm包管理工具
查看>>
[洛谷P3168][CQOI2015]任务查询系统
查看>>
鼠标放上去图片切换效果
查看>>
String Method的字符串变换的一个例子
查看>>
浅谈for...in与for....of
查看>>
无效报表文件路径
查看>>
MySQL使用存储过程,光标的使用的简单示例
查看>>