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实用示例 缩址还原
Dec 28 NodeJs
用nodejs写的一个简单项目打包工具
May 11 NodeJs
nodejs中转换URL字符串与查询字符串详解
Nov 26 NodeJs
NodeJS学习笔记之Connect中间件应用实例
Jan 27 NodeJs
快速掌握Node.js之Window下配置NodeJs环境
Mar 21 NodeJs
Nodejs进阶:基于express+multer的文件上传实例
Nov 21 NodeJs
详解NodeJS框架express的路径映射(路由)功能及控制
Mar 24 NodeJs
详解如何在NodeJS项目中优雅的使用ES6
Apr 22 NodeJs
详解Nodejs之静态资源处理
Jun 05 NodeJs
Windows下使用Nodejs运行js的方法
Sep 02 NodeJs
nodejs实现OAuth2.0授权服务认证
Dec 27 NodeJs
nodejs更改项目端口号的方法
May 13 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
Mysql数据库操作类( 1127版,提供源码下载 )
2010/12/02 PHP
解析file_get_contents模仿浏览器头(user_agent)获取数据
2013/06/27 PHP
php中怎么搜索相关联数组键值及获取之
2013/10/17 PHP
PHP中is_file不能替代file_exists的理由
2014/03/04 PHP
利用PHP函数计算中英文字符串长度的方法
2014/11/11 PHP
php文件上传你必须知道的几点
2015/10/20 PHP
PHP is_array() 检测变量是否是数组的实现方法
2016/06/13 PHP
PHP实现针对日期,月数,天数,周数,小时,分,秒等的加减运算示例【基于strtotime】
2017/04/19 PHP
JQuery的$命名冲突详细解析
2013/12/28 Javascript
jQuery常用操作方法及常用函数总结
2014/06/19 Javascript
jquery实现html页面 div 假分页有原理有代码
2014/09/06 Javascript
node+express+ejs制作简单页面上手指南
2014/11/26 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
2016/05/12 Javascript
浅谈jQuery效果函数
2016/09/16 Javascript
JS实现给对象动态添加属性的方法
2017/01/05 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
2017/01/19 Javascript
js oncontextmenu事件使用详解
2017/03/25 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
2017/08/08 Javascript
jquery实现搜索框功能实例详解
2018/07/23 jQuery
jQuery+vue.js实现的多选下拉列表功能示例
2019/01/15 jQuery
jQuery属性选择器用法实例分析
2019/06/28 jQuery
使用 webpack 插件自动生成 vue 路由文件的方法
2019/08/20 Javascript
[04:11]DOTA2上海特级锦标赛主赛事首日TOP10
2016/03/03 DOTA
[45:18]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第一场
2018/04/04 DOTA
python调用百度地图WEB服务API获取地点对应坐标值
2019/01/16 Python
pymysql 插入数据 转义处理方式
2020/03/02 Python
使用keras实现Precise, Recall, F1-socre方式
2020/06/15 Python
Python configparser模块应用过程解析
2020/08/14 Python
python一些性能分析的技巧
2020/08/30 Python
python 实现图片裁剪小工具
2021/02/02 Python
.net C#面试题
2012/08/28 面试题
三年级学生评语大全
2014/12/26 职场文书
热血教师观后感
2015/06/10 职场文书
一文搞懂Golang 时间和日期相关函数
2021/12/06 Golang
Mysql将字符串按照指定字符分割的正确方法
2022/05/30 MySQL
nginx设置资源请求目录的方式详解
2022/05/30 Servers