koa2完美支持async await

32 篇文章 0 订阅
29 篇文章 0 订阅

async await应该算是es7的东西了吧,在express和koa1中处理异步的方法都是yeild和generator等方式来处理异步看起来代码显得臃肿还有各种缺点(反正不用也没去深入了解)。

koa2最新的node框架推出后直接完美支持async await,使得node能更加优雅的处理异步请求,在koa2的框架中会大量的用到这个方法。

异步中的同步

await必须依赖于async,如果没有async那么await就会报错,但是有async没有await是没有问题的。
函数中传入的第二个参数next在函数中如果执行了next()那么就会跳出当前的方法去执行后面的方法。

先来看看基本的用法

async (ctx, next) => {
  /*获取全部数据*/
  const data1 = await user.find()
  data1.sort(function (n1,n2) {
      return n1.id - n2.id
  })
  ctx.response.body = {
    code: 1,
    list: data1,
      message: '获取数据成功'
  }
  next()
  console.log('我是不会执行的')
}

因为查询数据库是个异步的过程,js是单线程如果数据量大没有做处理那么在查询到数据前就跑完整个过程,前端就接收不到数据。这里的处理方法要么是在promise查询到数据后的回调中进行相关操作。
async await直接将这个异步过程当成同步来处理,await user.find()等待数据查询到然后在执行后面的操作。相对promise代码简介高效。

async await在node.js的接口方法中的到了大量的引用。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值