Я просто разделяю некоторые из моих пониманий.
Обещание ответа не совсем то же самое, что и будущее / обещание (например, std :: future и std :: обещание), поэтому вы не можете использовать обещание ответа при использованиибудущее / обещание.
Одно из применений ответного обещания - ответить отправителю, пока задание еще не выполнено.Предполагается, что субъект A
отправляет запрос субъекту B
, но B
не обрабатывает запрос.B
доставляет запрос другому субъекту C
, а C
обрабатывает запрос.В этом случае B
перенаправляет запрос на C
и должен что-то ответить на A
.B
нельзя заблокировать и ждать C
, иначе B
не сможет обработать новые запросы.В конце B
отправляет ответное обещание на A
.Ответное обещание, созданное B
, фактически используется A
, так что A
может ждать результата C
.
PS. Печально, что у меня недостаточно репутации, чтобы комментировать.