zoukankan      html  css  js  c++  java
  • node.js 多异步之间的协作方案

    《深入浅出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; })
  • 相关阅读:
    bzoj1036 [ZJOI2008]树的统计Count(树链剖分)
    poj2348 Euclid's Game
    bzoj3575 [Hnoi2014]道路堵塞
    poj2484 A Funny Game
    bzoj2286 [Sdoi2011]消耗战
    虚树学习笔记
    bzoj4518 [Sdoi2016]征途
    node.js开发环境配置
    js中阻止事件冒泡和浏览器默认行为
    css3 background-clip和background-origin 区别
  • 原文地址:https://www.cnblogs.com/lswit/p/4876906.html
Copyright © 2011-2022 走看看