我已经阅读过有关异步响应的内容,并且, 我试图使用golang返回多响应, 但我不知道如何做到这一点。
我的例子:
package main
import (
"fmt"
"io/ioutil"
"log"
"net/http"
)
func main() {
http.HandleFunc("/", multiResponse)
http.ListenAndServe(":8080", nil)
}
func multiResponse(w http.ResponseWriter, r *http.Request) {
go func() {
resp, err := http.Get("https://www.google.com.eg/search?q=hello")
if err != nil {
log.Println(err)
}
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Println(err)
}
// w.WriteHeader(http.StatusOK)
// w.Write(body)
fmt.Fprintln(w, string(body))
resp.Body.Close()
fmt.Println("done...")
}()
w.WriteHeader(http.StatusAccepted)
}
是否有任何例子可以理解异步响应?
修改
我的意思是多重反应,
当我收到客户的要求时,我会立即发送StatusAccepted,
在另一个goroutine其他流程工作中,然后在完成发送StatusOK一些数据之后。