【发布时间】:2021-08-12 12:53:17
【问题描述】:
有没有办法无限期地向time.After()提问?
动机:我有一个服务,调用者可以从中请求消息,并带有可选的超时时间。显而易见的方法是:
func service(timeout *time.Duration) SomeType {
var timeout_value time.Duration
if timeout != nil {
timeout_value = *timeout
} else {
timeout_value = time.Forever /* or something */
}
select {
case value <- some_channel:
return value
case <- time.After(timeout_value):
return nil
}
}
除非我不知道有没有办法说time.Forever。
【问题讨论】: