koa2洋葱模型之为什么要保证洋葱模型

在这里插入图片描述
这样的代码,按照洋葱模型,感觉打印顺序应该是1-3-4-2,其实结果是:
在这里插入图片描述
为什么?
因为中间件没有全部使用asyncawait
在这里插入图片描述

所以为了保证洋葱模型,我们必须在每个中间件上加上asyncawait,改进以后:
在这里插入图片描述
在这里插入图片描述

洋葱模型的先决条件:在每个中间件调用下一个中间件的时候(next()),前面一定要加上await

最后,为什么要保持这个洋葱模型呢?

因为很多时候我们在一个app里面有好多中间件,有些中间件需要依赖其他中间件的结果,那么如果没有洋葱模型就可能会出错

中间件之间的通信可以通过ctx挂载的方式来进行:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/dyw3390199/article/details/114080239