您好,欢迎光临本网站![请登录][注册会员]  
文件名称: Node.js流程控制引擎Stepify.zip
  所属分类: 其它
  开发工具:
  文件大小: 31kb
  下载次数: 0
  上传时间: 2019-07-17
  提 供 者: weixin_********
 详细说明: Stepify(node-stepify) 是一个简单易扩展的Node.js流程控制引擎,采用方法链(methods chain)的方式定制异步任务,使得Node.js工作流易于理解和维护。 目标是将复杂的任务进行拆分成多步完成,使得每一步的执行过程更加透明,化繁为简。 stepify特点 最基本的API的就3个:step(),done(),run(),简单容易理解。 精细的粒度划分(同时支持单/多任务),执行顺序可定制化。 每一个异步操作都经过特殊的封装,内部只需要关心这个异步的执行过程。 链式(chain)调用,代码逻辑看起来比较清晰。 灵活的回调函数定制和参数传递。 统一处理单个异步操作的异常,也可根据需要单独处理某个任务的异常。 最简单 的用法 简单实现基于oauth2授权获取用户基本资料的例子: // Authorizing based on oauth2 workflowStepify()     .step(getCode, function(appId, rUri) {         var root = this;         request.get([authorize_uri], function(err, res, body) {             root.done(err, JSON.parse(body).code);         });     }, [appId], [redirectUri])     .step(getToken, function(code) {         var root = this;         request.post([token_uri], function(err, res, body) {             root.done(err, JSON.parse(body).access_token);         });     })     .step(getInfo, function(token) {         request.get([info_uri]?token=\u00a0 \u00a0token,\u00a0function(err,\u00a0res,\u00a0body)\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0//\u00a0got\u00a0user\u00a0info,\u00a0pass\u00a0it\u00a0to\u00a0client\u00a0via\u00a0http\u00a0response\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\n\u00a0\u00a0\u00a0\u00a0})\n\u00a0\u00a0\u00a0\u00a0.run();\n\u591a\u4e2astep\u5171\u7528\u4e00\u4e2ahandle\u3001\u9759\u6001\u53c2\u6570\u3001\u52a8\u6001\u53c2\u6570\u4f20\u9012\u7684\u4f8b\u5b50\uff1a\nStepify()\n\u00a0\u00a0\u00a0\u00a0.step(read, __filename)     .step(function(buf) {         // buf is the buffer content of __filename         var root = this;         var writed = test.js;         // do more stuff with buf         // this demo just replace all spaces simply         buf = buf.toString().replace(/\s /g, );         fs.writeFile(writed, buf, function(err) {             // writed is the name of target file,             // it will be passed into next step as the first argument             root.done(err, writed);         });     })     .step(read)     // `read` here is a common handle stored in workflow     .read(function(p, encoding) {         fs.readFile(p, encoding || null, this.done.bind(this));     })     .run(); 这里多了一个read()方法,但read方法并不是stepify内置的方法。实际上,您可以任意“扩展”stepify链!它的奥妙在于step()方法的参数,详细请看step调用说明。 可以看到,一个复杂的异步操作,通过stepify定制,每一步都是那么清晰可读! 安装 $ npm install stepify 运行测试 $ npm install$ mocha 灵活使用 var Stepify = require(stepify); var workflow1 = Stepify().step(fn).step(fn)...run(); // or var workflow2 = new Stepify().step(fn).step(fn)...run(); // or var workflow3 = Stepify().step(fn).step(fn); // do some stuff ... workflow3.run(); // or var workflow4 = Stepify().task(foo).step(fn).step(fn).task(bar).step(fn).step(fn); // do some stuff ... workflow4.run([foo, bar]); var workflow5 = Stepify().step(fn).step(fn); workflow5.debug = true;workflow5.error = function(err) {}; workflow5.result = function(result) {};...workflow5.run(); // more ... 注:文档几乎所有的例子都是采用链式调用,但是拆开执行也是没有问题的。 原理 概念: task:完成一件复杂的事情,可以把它拆分成一系列任务,这些个任务有可能它的执行需要依赖上一个任务的完成结果,它执行的同时也有可能可以和其他一些任务并行,串行并行相结合,这其实跟真实世界是很吻合的。 step:每一个task里边可再细分,可以理解成“一步一步完成一个任务(Finish a task step by step)”,正所谓“一步一个脚印”是也。 stepify内部实际上有两个主要的类,一个是Stepify,一个是Step。 Stepify()的调用会返回一个Stepify实例,在这里称之为workflow,用于调度所有task的执行。 step()的调用会创建一个Step实例,用于完成具体的异步操作(当然也可以是同步操作,不过意义不大),step之间使用简单的api(done方法和next方法)传递。 标签:Stepify
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索:
 输入关键字,在本站1000多万海量源码库中尽情搜索: