koa2异步处理之async+await配合promise

这两天试了下koa2,之前用express回调之后渲染页面的方式出错了,在koa2上执行流程不对,说白了就是代码的执行顺序错了,然后就上网找资料,认真的看了下文档终于搞明白了async+await配合promise的用法!!!! 不多说直接上码吧......

router.get('/', async function (ctx,next) {
    ctx.state = {
    title: 'title'
  };
  function timeout(ms) {
    console.log("111");
    return new Promise((resolve) => {
    setTimeout(resolve, ms);
    });
  }

  await timeout(1000).then(() => {
    console.log('222');
 });

 console.log("333");
 ctx.body=ctx;
});

代码执行结果

111
222
333

这个代码看懂了其实就懂了koa2的async+await配合promise的用法了……

原文地址:https://www.cnblogs.com/samsimi/p/6547445.html