我正在学习 Go 并且正在经历这个例子:echo middleware example。我想深入了解当我们调用next(c)
函数中间件函数时发生了什么Process()
。
看着main()
我明白我们通过调用将函数附加Process()
到 echoContext
对象的中间件函数列表中Use()
。但是,查看echo 源代码,我不确定中间件示例next(c)
中的函数调用如何Process()
查看上下文的所有中间件函数。即使在搜索源代码后我似乎也找不到一些东西:
(1) 被定义的函数定义在哪里echo.HandlerFunc
?我看到WrapHandler但它是导出的并且没有用于echo.go
所以我很困惑当我们跳转到源代码next(c)
中的哪一行代码时会发生什么。echo.go
(2) 调用时applyMiddleware
似乎发生了循环,因为这似乎遍历了保存在 Context 的中间件函数列表中的所有中间件函数,但我看不到如何调用该方法,除非您调用导出的WrapMiddleware
函数ServeHTTP
等。