Я пытаюсь запустить HTTP-сервер в Go, и при запуске сервера должно быть напечатано сообщение, в случае ошибки должно быть напечатано сообщение об ошибке.
Учитывая следующеекод:
const (
HTTPServerPort = ":4000"
)
func main() {
var httpServerError = make(chan error)
var waitGroup sync.WaitGroup
setupHTTPHandlers()
waitGroup.Add(1)
go func() {
defer waitGroup.Done()
httpServerError <- http.ListenAndServe(HTTPServerPort, nil)
}()
if <-httpServerError != nil {
fmt.Println("The Logging API service could not be started.", <-httpServerError)
} else {
fmt.Println("Logging API Service running @ http://localhost" + HTTPServerPort)
}
waitGroup.Wait()
}
Когда я запускаю приложение, я не вижу ничего напечатанного на консоли, где я хотел бы видеть:
Logging API Service running @ http://localhost:4000
Когда я изменяю порт на неверный, на консоль выводится следующий вывод:
fatal error: all goroutines are asleep - deadlock!
goroutine 1 [chan receive]:
main.main()
...app.go:45 +0x107
exit status 2
Может ли кто-нибудь указать мне правильное направление, чтобы я знал, что я делаю неправильно с этой реализацией?