Replies: 3 comments 2 replies
-
const request = createAlova({
....,
middleware: [ // 此处中间件按顺序执行
middleware1,
middleware2,
(next)=>{
// .... 请求之前操作
const response = next();
// .... 响应之后操作
return response;
}
]
}) 目前全局的请求响应拦截器也算是一种中间件,完全可以用中间件的形式来替代 |
Beta Was this translation helpful? Give feedback.
-
@viilon 这个想法真的很棒,是koa2中的经典洋葱模型,当时在设计 我的结论是,其实初一看是挺优雅和吸引人的,但是我再想下感觉是不划算的。 其次,中间件设计确实可以很好地解耦,但解耦的设计有很多种,实际上现在的方案,我们也可以把 再其次,想法是真的很棒,找到场景配对上就无敌,毕竟场景不同,设计就不同,需要找到最适合对应场景的设计,例如在某个场景下会产生什么问题,然后我们应该如何设计功能来解决这个问题,从而为用户带来好处(节约时间精力、提高维护性、或原来难以实现的功能实现了之类的),而且必须是具体的问题,例如 这个全局中间件的方案,它的叠加机制、中间件设计具体能解决什么问题呢,这边好像没有提到,我思考了一下好像也没有想到,那我会认为这个方案是一个只有其表面但没有内含的方案,当然也可能在有对应的场景,我觉得不划算的点就是用现在已知的简单熟悉的方案去换这个未知的好处。 如果这个方案有实际的场景,而且我觉得很有想象空间的话,可能是一个可以考虑的方案,毕竟收益大于现有的才有冒着一点风险更换的价值嘛。 |
Beta Was this translation helpful? Give feedback.
-
洋葱模型的特性真的是 客户端的库基本上都没有这样做的,更多的应用场景还是在服务端。 |
Beta Was this translation helpful? Give feedback.
-
希望增加全局中间件功能来替代全局的请求响应拦截器
这样一来代码可以解耦,并且不同功能的中间件可以在不同的alova实例中自由组合,书写代码相对来说更加优雅
Beta Was this translation helpful? Give feedback.
All reactions