Observing other channels, or seeing when a channel does fire is what the select structure is for. It is one of the features that makes channels and goroutines very nice in go.
http://golang.org/ref/spec#Select_statements
http://blog.golang.org/2010/09/go-concurrency-patterns-timin...
http://talks.golang.org/2012/concurrency.slide#1
Video for the slides: http://www.youtube.com/watch?v=f6kdp27TYZs