安装ThenJs:  npm i thenjs

史上最快,与 node callback 完美结合的异步流程控制库

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script src="then.js"></script>
<script>
// <!-- thenjs第一处,parallel的用法-->
Thenjs.parallel([
function(cb){
var a = [1,1,1,1];
cb(null,a);
},
function(cb){
var b = [2,2,2,2];
cb(null,b);
},
function(cb){
var c = [3,3,3,3];
cb(null,c);
},
function(cb){
var cc = [8,8,8,8,8,8];
var xx = [];
Thenjs.each(cc,function(ecb,p){
xx.push(p*2);
ecb(null,null);
}).then(function(err,ps){
cb(null,xx)
});
}
]).then(function(cb,result){
console.log(result[0]);
console.log(result[1]);
console.log(result[2]);
console.log(result[3]);
});
//模仿查询回调函数
function task(arg,callback){
setTimeout(callback(null,arg),1);
} // <!-- thenjs第二处,eachSeries的用法-->
Thenjs.eachSeries([0, 1, 2], function (cont, value) {
task(value * 2, cont);
}).then(function (cont, result) {
console.log(result);
}); // <!-- thenjs第三处,each的用法-->
Thenjs.each([5, 5, 5], function(ecb,p){
// task(p* 2, ecb);
ecb(null,p*2)
}).then(function (ecb, result) {
console.log(result);
});
//后期继续收集
</script>
</body>
</html>

Thenjs的each方法一个参数是null时,会读取上一个Then链的arg参数,既result

ThenJS的更多相关文章

  1. thenjs的应用

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. 2014 Hangjs 见闻流水账第一天

    前言 6月21日~6月22日, 第一次跑远门去参加一个大会(广州 -> 杭州),本来打算,在火车的回来的路上,把这两天的东西记录一下,不过,火车上的环境实在恶劣,同时也高估了自己的专注力,所以, ...

  3. 关于关注和取消关注的nodejs写法

    本例子的关注和取消关注,是通过ajax的方法实现的:nodejs后台写好api接口:响应前台的ajax 先看ajax的代码实现: // 用户关注标签 function subscribe(uid, t ...

  4. express中路由设置的坑-----1

    router.get('/commodities/sortable', utils.logged, function (req, res) { Commodity.find({force_top:tr ...

  5. nodejs项目中的路由写法

    //两种路由写法,一种封装成函数,返回结果,此种方法可以传递参数, "use strict"; var _ = require("lodash"); var e ...

  6. node.js爬虫

    这是一个简单的node.js爬虫项目,麻雀虽小五脏俱全. 本项目主要包含一下技术: 发送http抓取页面(http).分析页面(cheerio).中文乱码处理(bufferhelper).异步并发流程 ...

  7. (转) Read-through: Wasserstein GAN

    Sorta Insightful Reviews Projects Archive Research About  In a world where everyone has opinions, on ...

  8. angular的require模块的使用($requireProvider的作用)

      今天我们学习一下angular的另一个几乎被忽略的模块angular-require 先给出链接地址(git:)   https://github.com/Treri/angular-requir ...

  9. 如何在项目中使用requireJS

    本文主要讲讲如何在一个项目中合理的使用requireJS,来加载js代码,这里是个实际例子,讲解不多, 看详情请连接到:http://www.cnblogs.com/evaling/p/6722760 ...

随机推荐

  1. Nginx 进行性能配置

    总所周知,网络上我们购买的服务器的性能各不相同,如果采用 Nginx 的默认配置的话,无法将服务器的全部性能优势发挥出来,我们应该选择适合自己需求的配置. 当我们默认安装后 Nginx 后,我们便得到 ...

  2. LAMP课程(3)

    LAMP课程(3) 一.bash的使用 1.1.输出重定向 >:覆盖输出(写入内容) 具体实例1:将内容写入到文件中   >>:追加输出 具体实例2:   1.2 && ...

  3. memcached 和 redis 安装

    memcached 1.搭建好lnmp 2.安装依赖包 yum install -y libevent-devel 3.安装memcached $ cd /usr/local/src $ wget h ...

  4. ORA-03113 : end-of-file on communication channel

    现象一: 数据库startup时,出现数据库无法正常mount,并报ORA-03113错误. SQL> startup ORACLE instance started. Total System ...

  5. 红蓝对抗 - 蓝队手册(BTFM)(转载)

    本文已发表在嘶吼RoarTalk,未经授权,请勿转载! http://www.4hou.com/technology/10173.html 最佳阅读体验版:https://stackedit.io/v ...

  6. CentOS 中安装tomcat

    1.安装tomcat前,需要安装JDK 2.下载tomcat安装包 wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.31/bin ...

  7. mysql 面试题

    1.一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15 ?   2.Mysql的技术特 ...

  8. LeetCode记录之35——Search Insert Position

    这道题难度较低,没有必要作说明. Given a sorted array and a target value, return the index if the target is found. I ...

  9. UVA - 11584 DP 最少线段覆盖

    题意:用最少的不可交线段覆盖整个区间,求该最小值 课上摸鱼的时候没注意到题意的转换,写了没啥卵用的回文中心最长枚举,所以代码里的st和h/h2是几乎没用的 注意状态转移的时候不要只用最长线段去转移,这 ...

  10. 基于PHPExcel的常用方法总结

    // 通常PHPExcel对象有两种实例化的方式// 1. 通过new关键字创建空白文档$phpexcel = newPHPExcel();// 2. 通过读取已有的模板创建$phpexcel =PH ...