为什么webserver的返回不能放在channel中统一返回

zhaohao · · 222 次点击 · 开始浏览   
为什么webserver的返回不能放在channel中,之后一起处理返回,将*gin.Context放在channel后在取出就出错了。 第一个请求返回可以,之后就都不可以了 ~~~ package main import ( "net/http" "github.com/gin-gonic/gin" ) type data struct { c *gin.Context name string } var dataChan chan *data func result(c *gin.Context, name string) { c.JSON(http.StatusOK, name) } func g() { for val := range dataChan { result(val.c, val.name) } } func hander(c *gin.Context) { name := c.Query("name") dataChan <- &data{c: c, name: name} //result(c, name) } func main() { dataChan = make(chan *data, 100) go g() router := gin.Default() router.GET("/welcome", hander) router.Run(":8080") } ~~~
222 次点击  
加入收藏 微博
4 回复  |  直到 2017-08-11 17:17:02
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传