c.Next()的作用是啥啊
来源:8-5 为gin增加middleware
争取早日上岸
2021-07-07 16:26:07
rt
1回答
首先,我们所有的middleware,也就是通过r.Use注册的函数,以及真正最后执行的业务逻辑,比如我的r.GET里的函数,是形成了一个“栈”。这个Next就是运行下一个的意思。
我们看这里:
这里注册了两个middleware函数。先运行L18-L26这个,记录了开始时间后,调用c.Next(),跳到L28-L30这里,它又调用了c.Next(),跳到真正的业务逻辑处理函数中,处理完了回到L30之后,第二个middleware函数也结束了,那再跳到L22,继续执行第一个middleware函数。所以此时的time.Now就是我们这个业务逻辑处理函数(严格说是它加上第二个middleware函数)所执行的时间。
相似问题