People were doing async I/O before coroutines existed. They are using callbacks and their own networking.