傻瓜式解读koa中间件处理模块koa-compose的使用
最近需要单独使用到koa-compose这个模块,虽然使用koa的时候大致知道中间件的执行流程,但是没仔细研究过源码用起来还是不放心。koa-compose看起来代码少,但是确实绕。闭包,递归,Promise。。。看了一遍脑子里绕不清楚。看了网上几篇解读文章,都是针对单行代码做解释,还是绕不清楚。最后只好采取一种傻瓜的方式:koa-compose去掉一些注释,类型校验后,源码如下:写出如下代码:直接运行结果如下:。怎么来的呢回头看一下,每个中间件里都有按照之前的分析,then里最先拿到结果的应该是next中间件的,而且结果就是Promise.resolve的结果,然后分别是f4,f3,f2,f1。一个中间件里调用两次next(),按照上面的套路走,相信很快就明白了。
用户评论