gin框架中的c.Next()/c.Abort()
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
func func1(c *gin.Context){
fmt.Println("func1")
}
func func2(c *gin.Context){
fmt.Println("func2 before")
c.Next()
fmt.Println("func2 after")
}
func func3(c *gin.Context){
fmt.Println("func3")
}
func func4(c *gin.Context){
fmt.Println("func4")
}
func func5(c *gin.Context){
fmt.Println("func5")
}
func main(){
r := gin.Default()
r.Get("/hello", func(c *gin.Context){})
shopGroup :- r.Group("/shop". func1, func2)
shopGroup.Use(func3)
{
shopGroup.Get("/index", func4, func5)
}
r.Run()
}
/*执行结果
func1
func2 before # 再往下执行的时候遇到c.Next(),就去执行其它函数,
func3
func4
func5
func2 after # 直到其它函数都执行完毕后,再返回执行当前函数中剩余的部分
*/
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
func func1(c *gin.Context){
fmt.Println("func1")
}
func func2(c *gin.Context){
fmt.Println("func2 before")
c.Next()
fmt.Println("func2 after")
}
func func3(c *gin.Context){
fmt.Println("func3")
c.Abort()
}
func func4(c *gin.Context){
fmt.Println("func4")
}
func func5(c *gin.Context){
fmt.Println("func5")
}
func main(){
r := gin.Default()
r.Get("/hello", func(c *gin.Context){})
shopGroup :- r.Group("/shop". func1, func2)
shopGroup.Use(func3)
{
shopGroup.Get("/index", func4, func5)
}
r.Run()
}
/*执行结果
func1
func2 before # 再往下执行的时候遇到c.Next(),就去执行其它函数,
func3 # func3函数中遇到c.Abort(),就会中断c.Next()
func2 after # 返回c.Next()函数中执行后续代码
*/
-------------------------------------------
个性签名:代码过万,键盘敲烂!!!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

浙公网安备 33010602011771号