gin框架中的c.Next()/c.Abort()
阿新 • • 發佈:2022-03-22
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()函式中執行後續程式碼 */