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的子进程(child_process)调用系统命令的方法分享
Jun 05 NodeJs
nodejs npm package.json中文文档
Sep 04 NodeJs
Nodejs极简入门教程(二):定时器
Oct 25 NodeJs
nodejs实现发出蜂鸣声音(系统报警声)的方法
Jan 18 NodeJs
用nodejs搭建websocket服务器
Jan 23 NodeJs
Nodejs进阶之服务端字符编解码和乱码处理
Sep 04 NodeJs
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
Sep 06 NodeJs
使用nodeJs来安装less及编译less文件为css文件的方法
Nov 20 NodeJs
NodeJs form-data格式传输文件的方法
Dec 13 NodeJs
基于nodejs res.end和res.send的区别
May 14 NodeJs
详解NodeJs开发微信公众号
May 25 NodeJs
详解nodejs 开发企业微信第三方应用入门教程
Mar 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 curl 并发最佳实践代码分享
2012/09/05 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
JS限制上传图片大小不使用控件在本地实现
2012/12/19 Javascript
JavaScript实现Flash炫光波动特效
2015/05/14 Javascript
js实现点击文本框显示日期选择器特效代码分享
2020/05/21 Javascript
微信JS-SDK坐标位置如何转换为百度地图坐标
2016/07/04 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
很酷的星级评分系统原生JS实现
2016/08/25 Javascript
js 事件的传播机制(实例讲解)
2017/07/20 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
2018/03/08 Javascript
React Native中Mobx的使用方法详解
2018/12/04 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
微信小程序实现发微博功能的示例代码
2020/06/24 Javascript
微信小程序使用前置摄像头拍照
2020/10/22 Javascript
JavaScript中遍历的十种方法总结
2020/12/15 Javascript
python设置检查点简单实现代码
2014/07/01 Python
讲解Python中for循环下的索引变量的作用域
2015/04/15 Python
Centos Python2 升级到Python3的简单实现
2016/06/21 Python
Python中numpy模块常见用法demo实例小结
2019/03/16 Python
Python线上环境使用日志的及配置文件
2019/07/28 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
2020/03/11 Python
什么是Python包的循环导入
2020/09/08 Python
python 密码学示例——理解哈希(Hash)算法
2020/09/21 Python
Python3.9新特性详解
2020/10/10 Python
用python 绘制茎叶图和复合饼图
2021/02/26 Python
美国知名日用品连锁超市:Dollar General(多来店)
2017/01/14 全球购物
资源环境与城市管理专业推荐信
2013/11/30 职场文书
优秀学生事迹材料
2014/02/08 职场文书
客运企业隐患排查工作方案
2014/06/06 职场文书
无财产无子女离婚协议书范文
2014/09/14 职场文书
学生无故旷课检讨书
2014/09/20 职场文书
巾帼文明岗汇报材料
2014/12/24 职场文书
高中语文教学反思范文
2016/02/16 职场文书
详解Spring Boot使用系统参数表提升系统的灵活性
2021/06/30 Java/Android
浅谈mysql哪些情况会导致索引失效
2021/11/20 MySQL