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教程 安装express及配置app.js文件的详细步骤
May 11 NodeJs
NodeJS Express框架中处理404页面一个方式
May 28 NodeJs
Nodejs全局安装和本地安装的不同之处
Jul 04 NodeJs
详解nodejs express下使用redis管理session
Apr 24 NodeJs
用Nodejs搭建服务器访问html、css、JS等静态资源文件
Apr 28 NodeJs
Nodejs--post的公式详解
Apr 29 NodeJs
深入浅析Nodejs的Http模块
Jun 20 NodeJs
Nodejs模块载入运行原理
Feb 23 NodeJs
nodejs取得当前执行路径的方法
May 13 NodeJs
nodejs 如何手动实现服务器
Aug 20 NodeJs
Nodejs对postgresql基本操作的封装方法
Feb 20 NodeJs
使用nodejs分离html文件里的js和css详解
Apr 12 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 模拟登陆MSN并获得用户信息
2009/05/16 PHP
PHP函数getenv简介和使用实例
2014/05/12 PHP
PHP实现的博客欢迎提示功能(很特别哦)
2014/06/05 PHP
php post大量数据时发现数据丢失问题解决方法
2015/06/20 PHP
PHP模块化安装教程
2016/06/01 PHP
简明json介绍
2008/09/28 Javascript
jQuery数据显示插件整合实现代码
2011/10/24 Javascript
js里怎么取select标签里的值并修改
2012/12/10 Javascript
用js格式化金额可设置保留的小数位数
2014/05/09 Javascript
JavaScript实现彩虹文字效果的方法
2015/04/16 Javascript
JavaScript正则表达式匹配 div  style标签
2016/03/15 Javascript
简单了解JavaScript操作XPath的一些基本方法
2016/06/03 Javascript
JS常用字符串方法(推荐)
2021/01/15 Javascript
AngularJs ng-repeat 嵌套如何获取外层$index
2016/09/21 Javascript
详解开源的JavaScript插件化框架MinimaJS
2017/10/26 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
2017/12/13 Javascript
在vue中封装可复用的组件方法
2018/03/01 Javascript
vue中实现左右联动的效果
2018/06/22 Javascript
ES6 Promise对象的应用实例分析
2019/06/27 Javascript
js实现3D照片墙效果
2019/10/28 Javascript
vue设置一开始进入的页面教程
2019/10/28 Javascript
jquery实现弹窗(系统提示框)效果
2019/12/10 jQuery
js实现九宫格抽奖
2020/03/19 Javascript
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
python tornado微信开发入门代码
2018/08/24 Python
python利用opencv实现SIFT特征提取与匹配
2020/03/05 Python
python应用Axes3D绘图(批量梯度下降算法)
2020/03/25 Python
html5中localStorage本地存储的简单使用
2017/06/16 HTML / CSS
新奥尔良珠宝:Mignon Faget
2020/11/23 全球购物
统计学专业毕业生的自我评价分享
2013/11/28 职场文书
小学家长会邀请函
2014/01/23 职场文书
国博复兴之路观后感
2015/06/02 职场文书
深度好文:50条没人告诉你的人生经验,句句精辟
2019/08/22 职场文书
python设置 matplotlib 正确显示中文的四种方式
2021/05/10 Python
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python
html css3不拉伸图片显示效果
2021/06/07 HTML / CSS