errWrapper 返回函数中的 request ,response 的值是怎么传递的???
来源:8-3 服务器统一出错处理

失眠的小绵羊
2022-01-05
appHandler 这个包装类型,与定义的func FileList(writer http.ResponseWriter, request *http.Request) error 一致。这个没问题,但是errWrapper这个异常函数里面返回的类型:func(writer http.ResponseWriter, request *http.Request) ,这个没看明白,主要是没明白 ,FileList 里面参数 request ,response怎么传给返回函数的???
一、 type appHandler func(writer http.ResponseWriter, request *http.Request) error
二、 func errWrapper(handler appHandler) func(writer http.ResponseWriter, request *http.Request) {
三、 return func(writer http.ResponseWriter, request *http.Request) {
1回答
-
ccmouse
2022-01-13
errWrapper这个函数在执行时并没有发生request/response的传递。它只是输入了一个函数(appHandler类型),返回了一个函数(func(writer http.ResponseWriter, request *http.Request)类型)。这个返回的函数就像是数据一样,此时并没有被执行。这里面的request/response是函数类型的一部分,此时并没有值。
这个返回的函数被注册到http.HandlerFunc里面,那样当有request进来的时候,就会执行这个返回的函数。这时,request/response就很自然的存在了。
10
相似问题