Nodejs让异步变成同步的方法


Posted in NodeJs onMarch 02, 2019

异步给我们带来的性能是明显的,但同时也给我们带了复杂的业务逻辑过程,特别请求依赖多的时候,下面我们来看看如何解决此类这样的问题。

Nodejs让异步变成同步的方法

使用方法

在这里我们信赖于co这个库。

npm install co --save
#or 
yarn add co

模拟

# 登录请求
let loginReq = new Promise((resolve,reject)=>{
  setTimeout(function () {
    resolve({success:true})
  },2000)
});
# 获取用户信息
let userInfoReq = new Promise((resolve,reject)=>{
  setTimeout(function () {
    resolve({nickName:'dounine'})
  },2000)
});
# 异步处理过程
loginReq.then(res=>{
 if(res.success){
  userInfoReq.then(userInfo=>{
   console.log('获取成功')
   ## 如果还有信赖,需要继续写,还没有逻辑业务参与
  })
 }
})
# 同步处理过程
co(function *(){
 let loginInfo = yield loginReq;
 if(loginInfo.success){
  let userInfo = yield userInfoReq;
  console.log('获取成功')
 }
})

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

NodeJs 相关文章推荐
nodejs中实现路由功能
Dec 29 NodeJs
图片上传之FileAPI与NodeJs
Jan 24 NodeJs
详解nodejs微信公众号开发——5.素材管理接口
Apr 11 NodeJs
详解Nodejs之静态资源处理
Jun 05 NodeJs
nodejs接入阿里大鱼短信验证码的方法
Jul 10 NodeJs
详解Nodejs 通过 fs.createWriteStream 保存文件
Oct 10 NodeJs
nodejs实现简单的gulp打包
Dec 21 NodeJs
nodeJs爬虫的技术点总结
May 13 NodeJs
NodeJS如何实现同步的方法示例
Aug 24 NodeJs
基于nodejs的微信JS-SDK简单应用实现
May 21 NodeJs
nodejs对mongodb数据库的增加修删该查实例代码
Jan 05 NodeJs
NodeJS和浏览器中this关键字的不同之处
Mar 03 NodeJs
nodejs使用async模块同步执行的方法
Mar 02 #NodeJs
NodeJS实现同步的方法
Mar 02 #NodeJs
PHPStorm中如何对nodejs项目进行单元测试详解
Feb 28 #NodeJs
Nodejs对postgresql基本操作的封装方法
Feb 20 #NodeJs
深入理解nodejs搭建静态服务器(实现命令行)
Feb 05 #NodeJs
Nodejs实现的操作MongoDB数据库功能完整示例
Feb 02 #NodeJs
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
Feb 02 #NodeJs
You might like
用PHP+java实现自动新闻滚动窗口
2006/10/09 PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
2012/09/05 PHP
php环境无法上传文件的解决方法
2014/04/30 PHP
使用WordPress发送电子邮件的相关PHP函数用法解析
2015/12/15 PHP
PHP中抽象类、接口的区别与选择分析
2016/03/29 PHP
php微信开发之百度天气预报
2016/11/18 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
判断是否输入完毕再激活提交按钮
2006/06/26 Javascript
你必须知道的JavaScript 变量命名规则详解
2013/05/07 Javascript
javascript实现原生ajax的几种方法介绍
2013/09/21 Javascript
基于jquery的文字向上跑动类似跑马灯的效果
2014/09/22 Javascript
js实现的后台左侧管理菜单代码
2015/09/11 Javascript
省市选择的简单实现(基于zepto.js)
2016/06/21 Javascript
vue模板语法-插值详解
2017/03/06 Javascript
vue实现全选、反选功能
2020/11/17 Javascript
vue组件学习教程
2017/09/09 Javascript
js实现数组和对象的深浅拷贝
2017/09/30 Javascript
vue-router配合ElementUI实现导航的实例
2018/02/11 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
小程序图片长按识别功能的实现方法
2018/08/30 Javascript
关于微信公众号开发无法支付的问题解决
2018/12/28 Javascript
vue获取时间戳转换为日期格式代码实例
2019/04/17 Javascript
微信小程序如何实现全局重新加载
2019/06/05 Javascript
jquery向后台提交数组的代码分析
2020/02/20 jQuery
基于JavaScript的数据结构队列动画实现示例解析
2020/08/06 Javascript
python爬取m3u8连接的视频
2018/02/28 Python
详解通过API管理或定制开发ECS实例
2018/09/30 Python
python实现多层感知器MLP(基于双月数据集)
2019/01/18 Python
使用django的objects.filter()方法匹配多个关键字的方法
2019/07/18 Python
使用IDLE的Python shell窗口实例详解
2019/11/19 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
2020/04/16 Python
美国环保妈妈、儿童和婴儿用品购物网站:The Tot
2019/11/24 全球购物
工伤事故赔偿协议书
2014/04/15 职场文书
大学生就业自荐书
2014/06/16 职场文书
教师个人成长总结
2015/02/11 职场文书
辞职信标准格式
2015/02/27 职场文书