我想深入了解當我們調用next(c)函數中間件函數時發生了什么Process()。看看main()我的理解,我們通過調用將該Process()函數附加到 echoContext對象的中間件函數列表中Use()。但是,查看echo 源代碼,我不確定中間件示例中的函數next(c)中的調用如何查看所有上下文的中間件函數。Process()即使搜索源代碼后我似乎也找不到一些東西:(1) 函數定義在哪里echo.HandlerFunc定義?我看到WrapHandler但它是導出的并且沒有使用,echo.go所以我很困惑當調用我們跳轉到源代碼next(c)中的哪一行代碼時會發生什么。echo.go(2) 看起來循環發生在調用時,applyMiddleware因為這似乎循環了上下文的中間件函數列表中保存的所有中間件函數,但我看不到如何調用該方法,除非您調用導出的函數WrapMiddleware等ServeHTTP。
1 回答

UYOU
TA貢獻1878條經驗 獲得超4個贊
next(c)
不循環任何東西。next
是作為函數參數接收的變量,其中包含函數。next(c)
調用該函數。實際上,它是鏈的下一部分 - 可能是下一個中間件,也可能是最終的請求處理程序。當返回func
的Process
被調用時,它本身可能已被next
之前的中間件調用。
沒有涉及任何魔法,庫中也沒有隱藏任何東西,它只是一系列函數調用。
- 1 回答
- 0 關注
- 160 瀏覽
添加回答
舉報
0/150
提交
取消