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进程管理模块forever详解
Jun 01 NodeJs
Nodejs Post请求报socket hang up错误的解决办法
Sep 25 NodeJs
nodejs教程之环境安装及运行
Nov 21 NodeJs
初识NodeJS服务端开发入门(Express+MySQL)
Apr 07 NodeJs
nodejs个人博客开发第四步 数据模型
Apr 12 NodeJs
详解Nodejs之静态资源处理
Jun 05 NodeJs
详解使用PM2管理nodejs进程
Oct 24 NodeJs
Nodejs 和 Electron ubuntu下快速安装过程
May 04 NodeJs
通过nodejs 服务器读取HTML文件渲染到页面的方法
May 17 NodeJs
nodejs更新package.json中的dependencies依赖到最新版本的方法
Oct 10 NodeJs
详解Nodejs get获取远程服务器接口数据
Mar 26 NodeJs
nodejs环境使用Typeorm连接查询Oracle数据
Dec 05 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获得文件扩展名三法
2006/11/25 PHP
PHP语法速查表
2006/12/06 PHP
转PHP手册及PHP编程标准
2006/12/17 PHP
php 表单数据的获取代码
2009/03/10 PHP
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
PHP对象递归引用造成内存泄漏分析
2014/08/28 PHP
php+flash+jQuery多图片上传源码分享
2020/07/27 PHP
jQuery中对节点进行操作的相关介绍
2013/04/16 Javascript
解决javascript:window.close()在chrome,Firefox下失效的问题
2013/05/07 Javascript
js中单引号与双引号冲突问题解决方法
2013/10/04 Javascript
js控制分页打印、打印分页示例
2014/02/08 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
jquery调取json数据实现省市级联的方法
2015/01/29 Javascript
javascript中递归函数用法注意点
2015/07/30 Javascript
Bootstrap+jfinal实现省市级联下拉菜单
2016/05/30 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
2017/03/08 Javascript
谈谈VUE种methods watch和compute的区别和联系
2017/08/01 Javascript
nodejs微信扫码支付功能实现
2018/02/17 NodeJs
在vue中使用jointjs的方法
2018/03/24 Javascript
swiper在vue项目中loop循环轮播失效的解决方法
2018/09/15 Javascript
[03:56]显微镜下的DOTA2第十一期——鬼畜的死亡先知播音员
2014/06/23 DOTA
Python yield 小结和实例
2014/04/25 Python
使用python和Django完成博客数据库的迁移方法
2018/01/05 Python
python读取有密码的zip压缩文件实例
2019/02/08 Python
postman模拟访问具有Session的post请求方法
2019/07/15 Python
对python中assert、isinstance的用法详解
2019/11/27 Python
pytorch中的weight-initilzation用法
2020/06/24 Python
CSS3制作炫酷的自定义发光文字
2016/03/28 HTML / CSS
Sunglasses Shop瑞典:欧洲领先的太阳镜网上商店
2018/04/22 全球购物
Qoo10台湾站:亚洲领先的在线市场
2018/05/15 全球购物
什么是java序列化,如何实现java序列化
2012/11/14 面试题
请写出 BOOL flag 与"零值"比较的 if 语句
2016/02/29 面试题
2014年党课学习心得体会
2014/07/08 职场文书
简单租房协议书范本
2014/08/20 职场文书
争先创优心得体会
2014/09/12 职场文书
浅谈Redis位图(Bitmap)及Redis二进制中的问题
2021/07/15 Redis