美文网首页js
koa await next()

koa await next()

作者: 我的昵称好听吗 | 来源:发表于2018-05-25 15:11 被阅读0次

当一个中间件调用 next() 则该函数暂停并将控制传递给定义的下一个中间件。当在下游没有更多的中间件执行后,堆栈将展开并且每个中间件恢复执行其上游行为。

// require("babel-register");
const http = require('http');
const https = require('https');
const Koa = require('koa');
const nexttest = require("./nexttest");
const app = new Koa();


// x-response-time
app.use(async (ctx, next) => {
  const start = Date.now();
  console.log('------1---------');
  await next();
  console.log('------2---------');

  const ms = Date.now() - start;
  ctx.set('X-Response-Time', `${ms}ms`);
});

// logger
app.use(async (ctx, next) => {
  const start = Date.now();
  console.log('------3--------');

  await next();
  console.log('------4---------');

  const ms = Date.now() - start;
  console.log(`${ctx.method} ${ctx.url} - ${ms}`);
});

app.use(async (ctx, next) => {
  console.log('------5--------');

  await next();
  console.log('------6---------');

});

// response
app.use(async ctx => {
  console.log('------7---------');

  ctx.body = ctx.response.status;
});

http.createServer(app.callback()).listen(3000);
// https.createServer(app.callback()).listen(3000);

输出:

------1---------
------3--------
------5--------
------7---------
------6---------
------4---------
GET / - 2
------2---------
------1---------
------3--------
------5--------
------7---------
------6---------
------4---------
GET / - 0
------2---------
------1---------
------3--------
------5--------
------7---------
------6---------
------4---------
GET /favicon.ico - 0
------2---------

相关文章

  • koa await next()

    当一个中间件调用 next() 则该函数暂停并将控制传递给定义的下一个中间件。当在下游没有更多的中间件执行后,堆栈...

  • koa

    koa的处理流程 koa的中间件 洋葱模型实现 通过await next();进入下一个中间件 next是comp...

  • 我和koa的故事

    await与next() 初次使用koa时,前端发送的/build请求都会进入fileRouter.build函数...

  • 初见 Koa 2

    koa 和 koa 2 最大的不同是koa 2 支持 async/await。koa 通过结合 generato...

  • koa2.0的实现原理

    koa2.0基于async await / koa1.0基于generator koa 的大致流程,文件结构划分很...

  • koa2洋葱模型

    写在前面 我们已经知道koa2中间件是基于async/await实现的,其执行过程是通过next来驱动的,于是,k...

  • koa2中间件原理

    源码:koa-compose.js koa2的中间件流向是先按顺序执行next以前内容,然后对next以后内容进行...

  • 小议express,koa,koa2

    express->koa->koa2其实就是回调->promise->co或者是generator->await ...

  • koa基础操作(2)

    1,安装 koa-router 2,修改index.js async/await 使用同步代码修改 插件koa-r...

  • Koa

    一、Koa是什么 二、异步的类型 callback Promise async + await

网友评论

    本文标题:koa await next()

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