我正在学习 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等。