Nodejs 让异步变成同步

作者: 大猪大猪 | 来源:发表于2018-05-02 15:04 被阅读38次

异步给我们带来的性能是明显的,但同时也给我们带了复杂的业务逻辑过程,特别请求依赖多的时候,下面我们来看看如何解决此类这样的问题。

nodejs.png

使用方法

在这里我们信赖于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 让异步变成同步

    异步给我们带来的性能是明显的,但同时也给我们带了复杂的业务逻辑过程,特别请求依赖多的时候,下面我们来看看如何解决此...

  • JS 模块化方案对比

    1. CommonJS 规范(同步加载 NodeJS) 2. AMD(异步加载模块 requireJS) 采用异步...

  • iOS让异步变成同步

    很多时候我们需要让异步里面的东西执行完之后再去执行我们想要执行的东西,这样可以实时的监控到执行的位置,避免线...

  • nodejs同步异步问题

    产生问题的经过 手头有个项目,遇到一个问题,nodejs中通过执行shell命令来执行本地程序,我希望是先执行本地...

  • Nodejs学习笔记-异常处理

    同步捕获异步捕获异常抛出 代码:https://github.com/fengchunjian/nodejs_ex...

  • 关于回调的终极解决方案

    使用async和await把异步变成同步

  • node 异步 I/O

    这篇文章主要讲 nodejs 中的异步 IO,关于同步、异步、阻塞、非阻塞 请移步这里。 事件循环 和 消息队列 ...

  • ES6 Promise 异步1

    - 异步 和 同步 promise对象: 用同步方式书写异步代码 promise 让异步写起来,像写同步一样流程...

  • node 一些思考

    nodejs特点 单线程 异步处理 nodejs服务器模型 看下服务器模型进化史 石器时代 同步青铜时代 复...

  • asyc/await/primise让异步变成“同步”

    asyn表示异步,用于声明一个函数是异步函数。await表示等待,用于等待一个异步方法的执行。

网友评论

    本文标题:Nodejs 让异步变成同步

    本文链接:https://www.haomeiwen.com/subject/ohlcrftx.html