node.js学习(八、回调优化)
来源:互联网 发布:源码交易系统 编辑:程序博客网 时间:2024/05/18 00:27
node.js的api中大量使用了回调函数。当业务较复杂时,代码就可能嵌套多层function回调。这样会照成后续代码难以阅读。
通过第三方co库可以解决此问题。在介绍co库前,先看一下如何查找第三方库及其文档。
node.js提供了第三方库的网站https://www.npmjs.com/
打开https://www.npmjs.com/ 你会发现最上方有一个搜索框。类似百度,你仅需要搜索需要的关键词,就会出现大量的相关库。如搜索mysql,就会出现下图列表。
点击mysql即可查看mysql的文档。
这里我们再来搜索一下co模块,得到如下列表:
点击第一项,进入详情页:
在服务器允许命令npm install 模块名 即可安装该模块
左侧为详细的api文档,阅读文档你就知道该模块如何使用。
api中列出了一个最典型的例子
co(function* () { return yield Promise.resolve(true);}).then(function (val) { console.log(val);}, function (err) { console.error(err.stack);});
其中
function* (val) { return yield Promise.resolve(val);}
是一个典型的异步转同步的方法,yield是阻塞关键字,作用是收集其后执行方法的异步返回结果。需要注意的是使用yield的function都要在function后加*。但是带*的function不能像普通的方法一样在任何地方调用。下面举个例子
//正确调用 sum(1,2); //错误调用,带*方法无法直接调用 getRes(1,2); } function sum(a,b){ return a+b; } function* getRes(a,b){ yield .... }
co模块即解决了如上错误调用,修改为co(getRes(1,2))即可。由此可看出co的作用即为将一个包含异步阻塞的方法转换为一个普通的方法。后续章节会讲述更多yield 异步阻塞的例子。关于co的实现原理,可查看其源码。github.com/tj/co
0 0
- node.js学习(八、回调优化)
- node.js学习(九、进一步异步优化)
- node.js学习一(node入门)
- 学习node.js(一)
- node.js学习(一)
- JS基础学习(八)
- Node.js 博客实例(八)增加存档页面
- Node.js笔记(八)向服务器post数据
- Node.js学习札记:Node.js的安装(Windows)
- node.js学习记录(一) node.js安装
- Node.js 学习一(Node.js 安装)
- Node.js学习笔记(一)-认识Node.js
- node.js学习(二、node.js安装)
- Node.js学习(一):初探Node.js
- Node.js学习笔记(一)—— Node基础
- Node学习课程(1)——安装node.js
- Node.js学习(二):创建第一个Node程序
- node.js express性能优化
- Java学习----day2——(4)面对对象编程的概念理解
- python知识点(二)字符串
- Ubuntu12.04(64bit)编译Android4.4源码和kernel
- RobotFramework环境配置三:项目预设
- 明日计划
- node.js学习(八、回调优化)
- C++ 将控制台打印的内容写入.txt文本
- PCA完全理解--从源头开始
- 生成任意随机数
- 将ffmpeg编译为一个SO文件,支持NEON
- 关于监听套接字的形象解释
- String、StringBuffer、StringBuilder的区别
- dll 导出函数
- C语言对文件操作01