有一个go func 的协程,我希望将里面如何要求的内容返回,但是发现问题,不加 channel 的话只打印可以正常获取,使用 chanel 之后就无法获取了,请问如何解决这个问题?
```
go func() {
for {
if sm, err := c.smprecombine(); err != nil {
if err != io.EOF {
err = errors.Wrap(err, "recombine")
logger.Info("err", err)
c.hci.dispatchError(err)
//attempt to cleanup
c.Errorf("recombineLoop: %v, cleaning up connection handle", err)
if err := c.hci.cleanupConnectionHandle(c.param.ConnectionHandle()); err != nil {
c.Errorf("recombineLoop: cleanup %v", err)
}
}
} else {
logger.Info(hex.EncodeToString(sm))
//此处可以正常打印,但是使用 channel传递的话就无法获得正确的内容了
}
}
}()
```
有疑问加站长微信联系(非本文作者)