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 ...
随机推荐
- js相册展示
自己写来用的,第一版草稿源码+效果图,功能优先,其他的再说,有时间再改进. <script src="http://common.cnblogs.com/script/jquery.j ...
- javaweb回顾第九篇EL表达式
前言:关于EL表示式开发用的非常多,现在我们回顾一下关于如果去操作EL表达式 1:EL表达式语法 所有EL表达式都是由{开始}结束,表达式中用.和[]操作符来访问数据比喻${user.userName ...
- MySQL(一) 数据表数据库的基本操作
序言 这类文章,记录我看<MySQL5.6从零开始学>这本书的过程,将自己觉得重要的东西记录一下,并有可能帮助到你们,在写的博文前几篇度会非常基础,只要动手敲,跟着我写的例子全部实现一遍, ...
- iOS中计算磁盘缓存文件夹的大小
SDWebImage框架中在自动做磁盘缓存的过程中,底层实现了计算Cache的大小,框架的方法名称是getSize,但方法不容易被人理解,我就从新写了一下,附带注释 基本思想: 1. 先取出的Cach ...
- SSIS的DelayValidation属性
一,DelayValidation Property true if validation of the package is delayed until run time. false if the ...
- WP中的语音识别(上):基本识别
WP 8.1目前许多内容仍处于未确定状态,因此,本文所提及的语音识别,是基于WP8的,在8.1中也差不多,也是使用运行时API来实现,如果大家不知道什么是运行时API,也没关系,不影响学习和开发,因为 ...
- Oracle常见错误
1. Oracle无法动态注册 在SQL*PLUS下多次输入alter system register.监听器的状态始终显示为The listener supports no services. 可查 ...
- 2014 -> 2015
2014年初在公司的发展不太顺利, 发现比好多小伙伴的发展速度都要慢了,钱不多,职位也不高,做的事情成长也不快. 为了职业发展考虑,年中就一直想换一个好一点的工作机会, 年中拿了好几个offer, 有 ...
- 圣诞礼物:分享几套漂亮的圣诞节 PSD 素材
马上就到圣诞节了,这篇文章要给大家分享几套精美的圣诞节相关的 PSD 设计素材,你可以免费下载使用,用于圣诞节相关的设计项目中.这些免费素材能够帮助你节省大量的时间,而且能有很好的效果. 您可能感兴趣 ...
- spring 数据校验之Hibernate validation
1.需要的jar包 2.springsevlet-config.xml配置 在spring3之后,任何支持JSR303的validator(如Hibernate Validator)都可以通过简单配置 ...