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 的 c++ module 链接到 OpenSSL
Aug 03 NodeJs
Windows 系统下设置Nodejs NPM全局路径
Apr 26 NodeJs
使用nodejs中httpProxy代理时候出现404异常的解决方法
Aug 15 NodeJs
nodejs开发——express路由与中间件
Mar 24 NodeJs
nodejs入门教程一:概念与用法简介
Apr 24 NodeJs
nodejs入门教程三:调用内部和外部方法示例
Apr 24 NodeJs
Nodejs实现多房间简易聊天室功能
Jun 20 NodeJs
nodejs密码加密中生成随机数的实例代码
Jul 17 NodeJs
nodejs实现截取上传视频中一帧作为预览图片
Dec 10 NodeJs
NodeJS实现一个聊天室功能
Nov 25 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
NOD32 v2.70.32 简体中文封装版 提供下载了
2007/02/27 PHP
elgg 获取文件图标地址的方法
2010/03/20 PHP
PHP Global定义全局变量使用说明
2013/08/15 PHP
PHP常用编译参数中文说明
2014/09/27 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
2016/04/07 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
2016/07/07 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
2017/07/03 PHP
jQuery语法总结和注意事项小结
2012/11/11 Javascript
三种方式获取XMLHttpRequest对象
2014/04/21 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
js实现小窗口拖拽效果
2016/12/03 Javascript
Jquery删除css属性的简单方法
2016/12/04 Javascript
jQuery实现手机上输入后隐藏键盘功能
2017/01/04 Javascript
详解用vue.js和laravel实现微信支付
2017/06/23 Javascript
vue几个常用跨域处理方式介绍
2018/02/07 Javascript
详解Nodejs mongoose
2018/06/10 NodeJs
Layui 设置select下拉框自动选中某项的方法
2018/08/14 Javascript
Node.js API详解之 zlib模块用法分析
2020/05/19 Javascript
Python实现视频下载功能
2017/03/14 Python
Python实现翻转数组功能示例
2018/01/12 Python
Python中函数参数调用方式分析
2018/08/09 Python
Django forms组件的使用教程
2018/10/08 Python
python 遗传算法求函数极值的实现代码
2020/02/11 Python
Python3实现打印任意宽度的菱形代码
2020/04/12 Python
Python调用OpenCV实现图像平滑代码实例
2020/06/19 Python
Python求区间正整数内所有素数之和的方法实例
2020/10/13 Python
联想智利官方网站:Lenovo Chile
2020/06/03 全球购物
销售心得体会
2014/01/02 职场文书
工厂车间标语
2014/06/19 职场文书
第二批党的群众路线教育实践活动总结报告
2014/10/30 职场文书
2014年教师个人工作总结
2014/11/10 职场文书
企业开业庆典答谢词
2015/01/20 职场文书
Docker与K8s关系介绍不会Docker也可以使用K8s
2022/06/25 Servers