c.Next()的作用是啥啊

来源:8-5 为gin增加middleware

争取早日上岸

2021-07-07 16:26:07

​rt

写回答

1回答

ccmouse

2021-07-07

首先,我们所有的middleware,也就是通过r.Use注册的函数,以及真正最后执行的业务逻辑,比如我的r.GET里的函数,是形成了一个“栈”。这个Next就是运行下一个的意思。


我们看这里:

http://img.mukewang.com/climg/60e58cb90909c8f616360830.jpg

这里注册了两个middleware函数。先运行L18-L26这个,记录了开始时间后,调用c.Next(),跳到L28-L30这里,它又调用了c.Next(),跳到真正的业务逻辑处理函数中,处理完了回到L30之后,第二个middleware函数也结束了,那再跳到L22,继续执行第一个middleware函数。所以此时的time.Now就是我们这个业务逻辑处理函数(严格说是它加上第二个middleware函数)所执行的时间。

4

0 学习 · 1399 问题

查看课程