Соединиться() было бы слишком поздно, если бы ответ когда-либо выдавал законченный() во время создания, до того, как указатель ответа будет возвращен вызывающему элементу post().
QNetworkReply/QNetworkAccessManager этого не делает, однако начало сетевой операции ответа - queued в цикле событий, то есть операция не начнется до того, как ваш код вернется в цикл событий, иначе события будут обработаны иным образом (в противном случае означает, что один явно вызывает один из нескольких неприятных методов, таких как QDialog :: exec()/QMessageBox :: критический и т. д., QEventLoop :: exec() или processEvents()). Таким образом, ваш код безопасен, если вы сразу подключитесь к ответу.
Неизлучающие сигналы, подобные завершенному() синхронно во время запуска асинхронной операции, на мой взгляд являются одним из самых важных правил при реализации таких операций.