我想在goroutine中启动HTTP服务器,但如果启动失败,其父级将返回错误。有没有一个好的方法来做到这一点?我尝试在通道中传递错误。但是,即使服务器成功启动,这也会使父块生效(除非我引入了在该通道上进行侦听的任意超时)。
func Start() error {
go func() {
srv = &http.Server{...}
if err := srv.ListenAndServe(); err != http.ErrServerClosed {
// return err from Start()
}
}
// return nil if server started successfully
}
大话西游666
萧十郎
相关分类