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的模块写法入门(实例代码)
Mar 07 NodeJs
nodejs文件操作模块FS(File System)常用函数简明总结
Jun 05 NodeJs
NodeJS使用jQuery选择器操作DOM
Feb 13 NodeJs
Nodejs关于gzip/deflate压缩详解
Mar 04 NodeJs
使用DNode实现php和nodejs之间通信的简单实例
Jul 06 NodeJs
搭建简单的nodejs http服务器详解
Mar 09 NodeJs
nodejs个人博客开发第七步 后台登陆
Apr 12 NodeJs
详解使用vscode+es6写nodejs服务端调试配置
Sep 21 NodeJs
NodeJS 实现多语言的示例代码
Sep 11 NodeJs
nodeJS进程管理器pm2的使用
Jan 09 NodeJs
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
May 30 NodeJs
NodeJS有难度的面试题(能答对几个)
Oct 09 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生成Gif图片验证码
2013/10/27 PHP
php递归遍历删除文件的方法
2015/04/17 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
2015/09/25 PHP
Bootstrap+PHP实现多图上传功能实例详解
2018/04/08 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
2019/03/22 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
php与阿里云短信接口接入操作案例分析
2020/05/27 PHP
jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
2009/12/02 Javascript
12款经典的白富美型—jquery图片轮播插件—前端开发必备
2013/01/08 Javascript
jquery 实现返回顶部功能
2014/11/17 Javascript
javascript针对不确定函数的执行方法
2015/12/16 Javascript
JavaScript学习笔记之数组求和方法
2016/03/23 Javascript
AngularJS入门教程之MVC架构实例分析
2016/11/01 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
2017/01/05 Javascript
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
详解jQuery中的isPlainObject()使用方法
2018/02/27 jQuery
浅谈Vue服务端渲染框架Nuxt的那些事
2018/12/21 Javascript
原生js实现随机点名功能
2019/11/05 Javascript
微信小程序中的上拉、下拉菜单功能
2020/03/13 Javascript
vue 动态生成拓扑图的示例
2021/01/03 Vue.js
python实现人民币大写转换
2018/06/20 Python
Python爬虫抓取技术的一些经验
2019/07/12 Python
wxPython绘图模块wxPyPlot实现数据可视化
2019/11/19 Python
Python random库使用方法及异常处理方案
2020/03/02 Python
Keras 在fit_generator训练方式中加入图像random_crop操作
2020/07/03 Python
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
贝佳斯官方网站:Borghese
2020/05/08 全球购物
物业管理大学生个人的自我评价
2013/10/10 职场文书
教师实习的自我鉴定
2013/10/26 职场文书
机械设计毕业生自荐信
2014/02/02 职场文书
小学老师寄语大全
2014/04/04 职场文书
财务部会计岗位职责
2015/02/03 职场文书
Python中常见的导入方式总结
2021/05/06 Python
html form表单基础入门案例讲解
2021/07/21 HTML / CSS
MySQL创建管理LIST分区
2022/04/13 MySQL
Java Spring Boot请求方式与请求映射过程分析
2022/06/25 Java/Android