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事件的监听与触发的理解分析
Feb 12 NodeJs
nodejs实现HTTPS发起POST请求
Apr 23 NodeJs
使用DNode实现php和nodejs之间通信的简单实例
Jul 06 NodeJs
nodejs 终端打印进度条实例代码
Apr 22 NodeJs
nodejs入门教程五:连接数据库的方法分析
Apr 24 NodeJs
详解nodejs通过代理(proxy)发送http请求(request)
Sep 22 NodeJs
nodejs express配置自签名https服务器的方法
May 22 NodeJs
nodejs 生成和导出 word的实例代码
Jul 31 NodeJs
nodejs对项目下所有空文件夹创建gitkeep的方法
Aug 02 NodeJs
nodejs中内置模块fs,path常见的用法说明
Nov 07 NodeJs
NodeJs内存占用过高的排查实战记录
May 10 NodeJs
分享五个Node.js开发的优秀实践 
Apr 07 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 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
解析php下载远程图片函数 可伪造来路
2013/06/25 PHP
使用ob系列函数实现PHP网站页面静态化
2014/08/13 PHP
Laravel SQL语句记录方式(推荐)
2016/05/26 PHP
php入门教程之Zend Studio设置与开发实例
2016/09/09 PHP
初学JavaScript第二章
2008/09/30 Javascript
兼容FireFox 的 js 日历 支持时间的获取
2009/03/04 Javascript
JavaScript取得鼠标绝对位置程序代码介绍
2012/09/16 Javascript
ExtJS下书写动态生成的xml(兼容火狐)
2013/04/02 Javascript
JS隐藏参数post传值实例
2013/04/18 Javascript
js中apply方法的使用详细解析
2013/11/04 Javascript
javascript 对象数组根据对象object key的值排序
2015/03/09 Javascript
JavaScript操作URL的相关内容集锦
2015/10/29 Javascript
浅析BootStrap模态框的使用(经典)
2016/04/29 Javascript
BootStrap入门教程(一)之可视化布局
2016/09/19 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
Vue的elementUI实现自定义主题方法
2018/02/23 Javascript
实例详解带参数的 npm script
2019/05/28 Javascript
在 Vue 中使用 JSX 及使用它的原因浅析
2020/02/10 Javascript
详解vue-router的Import异步加载模块问题的解决方案
2020/05/13 Javascript
layui使用及简单的三级联动实现教程
2020/12/01 Javascript
通过python将大量文件按修改时间分类的方法
2018/10/17 Python
CSS3的一个简单导航栏实现
2015/08/03 HTML / CSS
非洲NO.1网上商店:Jumia肯尼亚
2016/08/18 全球购物
波兰快递服务:Globkurier.pl
2019/11/08 全球购物
Orlebar Brown官网:设计师泳裤和泳装
2020/12/08 全球购物
护士自荐信怎么写
2013/10/18 职场文书
货代行业个人求职简历的自我评价
2013/10/22 职场文书
高中生自我鉴定范文
2013/10/30 职场文书
总经理助理工作职责
2014/02/06 职场文书
银行授权委托书格式
2014/10/10 职场文书
2014年体育部工作总结
2014/11/13 职场文书
加强党性修养心得体会
2016/01/21 职场文书
2016优秀员工先进事迹材料
2016/02/25 职场文书
基于Python和openCV实现图像的全景拼接详细步骤
2021/10/05 Python
如何利用golang运用mysql数据库
2022/03/13 Golang