eventProxy
1.功能
解决javascript回调地狱
fs.readFile('./file1.txt', 'utf8', function(err, content1){ fs.readFile('./file2.txt', 'utf8', function(err, content2){ fs.readFile('./file3.txt', 'utf8', function(err, content3){ console.log(content1+content2+content3) }); }); })
安装eventProxy
npm install eventproxy
2.常用方法
①解决回调方法
emit:触发事件
after
all:告诉它你要监听哪些事件,并给它一个回调函数。ep.all('event1', 'event2', function (result1, result2) {})。
var fs = require('fs'); var EventProxy = require('eventProxy'); var ep = new EventProxy(); ep.all(['read_file1', 'read_file2', 'read_file3'], function(content1, content2, content3){ console.log(content1+content2+content3) }); ep.after('read_file', 3, function(contents){ console.log(contents.join()); }); fs.readFile('./file1.txt', 'utf8', function(err, content1){ ep.emit('read_file', content1+'ooxx'); }) fs.readFile('./file2.txt', 'utf8', function(err, content2){ ep.emit('read_file', content2); }) fs.readFile('./file3.txt', 'utf8', function(err, content3){ ep.emit('read_file', content3); })
②优化代码的方法
down
throw
fail
ep.fail(function(err){ console.log('this is fail function'); console.log(err); }); fs.readFile('./file4.txt', 'utf8', function(err, content){ if(err){ ep.throw(err); //ep.emit('error', err); } })
eventProxy的更多相关文章
- Nodejs - 如何用 eventproxy 模块控制并发
本文目标 本文的目标是获取 ZOJ 1001-1010 每道题 best solution 的作者 id,取得数据后一次性输出在控制台. 前文 如何用 Nodejs 分析一个简单页面 我们讲了如何用 ...
- promise与aysnc 与EventProxy
promise 已经是 es6推荐的内置的东西了,所以我们需要清楚. promise的使用类似与jquery的链式操作,.then() .then()中不断使用.回调看上去清晰明了,建议使用. as ...
- nodeJS之eventproxy源码解读
1.源码缩影 !(function (name, definition) { var hasDefine = typeof define === 'function', //检查上下文环境是否为AMD ...
- Node.js之eventproxy详解
安装 npm install eventproxy --save 调用 var EventProxy = require('eventproxy'); 异步协作 多类型异步协作 此处以页面渲染为场景, ...
- nodejs批量导入数据eventproxy(回调函数嵌套解决方案)使用实例
回调函数嵌套解决方案——eventProxy API地址:https://github.com/JacksonTian/eventproxy 1.安装eventproxy 执行npm install ...
- nodejs 使用superagent+cheerio+eventproxy爬取豆瓣帖子
//cnpm install superagent cheerio eventproxy fs pathvar superagent = require('superagent'); var chee ...
- eventproxy 介绍这款好用的工具,前端事件式编程的思维
前端事件式编程 <script src="eventproxy.js"></script> <script> // EventProxy此时是一 ...
- EventProxy流程控制
EventProxy流程控制 EventProxy是一个通过控制事件触发顺序来控制业务流程的工具. 1. 利用事件机制解耦复杂业务逻辑2. 移除被广为诟病的深度callback嵌套问题3. 将串行等待 ...
- 手把手教你学node.js 之使用 eventproxy 控制并发
使用 eventproxy 控制并发 目标 建立一个 lesson4 项目,在其中编写代码. 代码的入口是 app.js,当调用 node app.js 时,它会输出 CNode(https://cn ...
随机推荐
- mysql修改密码
mysql修改password >mysqladmin -u root -p password newpassword 就这么简单
- cordova platform add specified version
cordova platform add specified version 命令格式 cordova platform add android@4.0 可用的版本 Valid install tar ...
- Linux下程序包管理工具RPM
实验环境: CentOS release 6.6 (Final) 一台 IP地址:172.16.249.230 RPM 是 Red Hat Package Manager 的缩写,本意是Red Ha ...
- Topology Shapes of OpenCascade BRep
Topology Shapes of OpenCascade BRep eryar@163.com 摘要Abstract:通过对OpenCascade中的BRep数据的读写,理解边界表示法的概念及实现 ...
- python第二天 - 异常处理
简单罗列一下知识点: 一.基本写法 try: html = _respose.read().decode('utf-8')except Exception as e: pass 捕获多个异常 ...
- (转)Shell函数
Shell函数类似于Shell脚本,里面存放了一系列的指令,不过Shell的函数存在于内存,而不是硬盘文件,所以速度很快,另外,Shell还能对函数进行预处理,所以函数的启动比脚本更快. 1. 函数 ...
- 蒙特·卡罗算法的Python实现
一 背景 此算法诞生的背景是: 曼哈顿计划,有极大的计算需求. 计算机刚开始发展,最适合做计算. 蒙特卡洛算法理论基础是概率论,实际就是暴力计算逼近理想结果.正是在以上两个背景下,它刚好得到了极大的应 ...
- Gephi可视化(一)——使用Gephi Toolkit创建Gephi应用
在Prefuse上摸打滚爬了一段时间,发现其和蔼可亲,容易上手.但是每每在打开gephi,导入数据再运行时,总还是在心里暗自赞叹gephi的绚烂之极,无与匹敌,当然,gephi也有自己的缺陷,但是ge ...
- 优秀工具推荐:超实用的 CSS 库,样板和框架
当启动一个新的项目,使用 CSS 框架或样板,可以帮助您节省大量的时间.在这篇文章中,我编译整理了我最喜欢的 CSS 样板,框架和库,帮助你在建立网站或应用程序时更加高效. 您可能感兴趣的相关文章 精 ...
- Android APP压力测试(一)之Monkey工具介绍
Android APP压力测试(一) 之Monkey工具介绍 前言 本文主要介绍Monkey工具.Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕.滑动. ...