Au contraire: Go has a built-in 'select' keyword that lets you wait on a set of arbitrary (blocking) channel operations. Start up blocking I/O in goroutines, and select on channels that give you the results.
(Early versions of Go had a "network channel" concept, but that was removed from the language: https://softwareengineering.stackexchange.com/questions/1540...)
Seems pretty similar to me.
See this very very old HN thread:
https://news.ycombinator.com/item?id=3565703
(Hopefully the standard library has improved since then.)
It just happens to offer a similar model (and have a select operation).