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与javascript中的aes加密
May 22 NodeJs
在windows上用nodejs搭建静态文件服务器的简单方法
Aug 11 NodeJs
nodeJs内存泄漏问题详解
Sep 05 NodeJs
Nodejs中解决cluster模块的多进程如何共享数据问题
Nov 10 NodeJs
nodejs搭建本地http服务器教程
Mar 13 NodeJs
nodejs超出最大的调用栈错误问题
Dec 27 NodeJs
nodejs基于WS模块实现WebSocket聊天功能的方法
Jan 12 NodeJs
nodejs中express入门和基础知识点学习
Sep 13 NodeJs
nodejs读取本地中文json文件出现乱码解决方法
Oct 10 NodeJs
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
Feb 02 NodeJs
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
Aug 20 NodeJs
nodejs中使用worker_threads来创建新的线程的方法
Jan 22 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 cookie,session的使用与用户自动登录功能实现方法分析
2019/06/05 PHP
用Javascript 和 CSS 实现脚注(Footnote)效果
2009/09/09 Javascript
JavaScript实现页面实时显示当前时间的简单实例
2013/07/20 Javascript
Javascript 拖拽雏形(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
jQuery经过一段时间自动隐藏指定元素的方法
2015/03/17 Javascript
angularJS与bootstrap结合实现动态加载弹出提示内容
2015/10/16 Javascript
JS设置下拉列表框当前所选值的方法
2015/12/22 Javascript
javascript拖拽应用实例(二)
2016/03/25 Javascript
原生javascript实现的ajax异步封装功能示例
2016/11/03 Javascript
基于jQuery和CSS3实现APPLE TV海报视差效果
2017/06/16 jQuery
JS中判断某个字符串是否包含另一个字符串的五种方法
2018/05/03 Javascript
详解NodeJs开发微信公众号
2018/05/25 NodeJs
vue弹窗组件的实现示例代码
2018/09/10 Javascript
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
微信小程序实现导航栏和内容上下联动功能代码
2020/06/29 Javascript
[01:29:46]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第二局
2016/02/27 DOTA
Python使用sftp实现上传和下载功能(实例代码)
2017/03/14 Python
使用python遍历指定城市的一周气温
2017/03/31 Python
Flask模拟实现CSRF攻击的方法
2018/07/24 Python
Python 新建文件夹与复制文件夹内所有内容的方法
2018/10/27 Python
Python对列表的操作知识点详解
2019/08/20 Python
Python装饰器结合递归原理解析
2020/07/02 Python
Python是怎样处理json模块的
2020/07/16 Python
加拿大最大的体育用品、鞋类和服装零售商:Sport Chek
2018/11/29 全球购物
自我评价200字分享
2013/12/17 职场文书
管理工程专业求职信
2014/08/10 职场文书
关于青春的演讲稿500字
2014/08/22 职场文书
法人代表身份证明书及授权委托书
2014/09/16 职场文书
2014年城管个人工作总结
2014/12/08 职场文书
员工2014年度工作总结
2014/12/09 职场文书
食堂采购员岗位职责
2015/04/03 职场文书
2015年行风建设工作总结
2015/05/15 职场文书
使用 JavaScript 制作页面效果
2021/04/21 Javascript
html网页引入svg图片的4种方式
2022/08/05 HTML / CSS
SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
2023/05/08 MySQL