Как вернуть значение из функции обратного вызова ответа HTTP в C++ (UE5.2) ⇐ C++
-
Anonymous
Как вернуть значение из функции обратного вызова ответа HTTP в C++ (UE5.2)
Я пытаюсь отправить HTTP-запрос на C++ с помощью Unreal Engine 5.2 как часть функции, используя HttpModule.h, и у меня есть лямбда-функция для обработки ответа на запрос, которая работает сама по себе. Но из основной функции я хочу вернуть, был ли ответ успешным (т.е. удалось ли мне получить код доступа в данных ответа). Вот упрощение моего кода:
TPromise Успех; Запрос->OnProcessRequestComplete().BindLambda( [&]( Запрос FHttpRequestPtr, Ответ FHttpResponsePtr, bool ConnectedSuccessful) изменяемый { если (подключено успешно) { Success.SetValue(истина); } еще { Success.SetValue(ложь); } } ); Запрос->ПроцессЗапрос(); вернуть Успех.GetFuture().Get(); Я пробовал использовать только логическое значение, обновлять его в лямбда-функции и возвращать в конце, и вы можете видеть, что я также пытался использовать TPromise и обновлять его в лямбда-функции, но это приводит к тому, что Unreal зависает и ничего не делает. .
Как я могу узнать, был ли ответ успешным или нет?
Я пытаюсь отправить HTTP-запрос на C++ с помощью Unreal Engine 5.2 как часть функции, используя HttpModule.h, и у меня есть лямбда-функция для обработки ответа на запрос, которая работает сама по себе. Но из основной функции я хочу вернуть, был ли ответ успешным (т.е. удалось ли мне получить код доступа в данных ответа). Вот упрощение моего кода:
TPromise Успех; Запрос->OnProcessRequestComplete().BindLambda( [&]( Запрос FHttpRequestPtr, Ответ FHttpResponsePtr, bool ConnectedSuccessful) изменяемый { если (подключено успешно) { Success.SetValue(истина); } еще { Success.SetValue(ложь); } } ); Запрос->ПроцессЗапрос(); вернуть Успех.GetFuture().Get(); Я пробовал использовать только логическое значение, обновлять его в лямбда-функции и возвращать в конце, и вы можете видеть, что я также пытался использовать TPromise и обновлять его в лямбда-функции, но это приводит к тому, что Unreal зависает и ничего не делает. .
Как я могу узнать, был ли ответ успешным или нет?
Мобильная версия