方法「DataOperation」必須返回DataResponse類型中的值。返回類型的回調函數
我在我的異步請求回覆「LoadDataReply」裏面有一個回調函數,在這個回調函數中,我在收到的回覆中應用了一些業務邏輯並返回主方法(我不確定返回回調是否正確)。
你們可以幫我介紹如何爲LoadData方法的調用者返回值。
DataResponse DataOperation::LoadData(const RequestType request)
{
DataResponse dataResponse;
messageAssistant.AsyncRequest("LoadDataList", request)
.OnReply<MyResponseType>("LoadDataListReply", [this, &dataResponse](auto& reply) { dataResponse = this->LoadDataFromResponse(reply); });
return dataResponse;
}
DataResponse DataOperation::LoadDataFromResponse(const MyResponseType& reply)
{
///Doing some operation with reply data
DataResponse dataResponse;
dataResponse.Data = reply.Data();
return dataResponse;
}
上面的代碼沒有編譯。
我收到編譯錯誤,
error C4716: 'DataOperation::LoadData': must return a value
注: -我已經更新了我的代碼,並編譯沒有任何問題。但是,我從LoadData返回的dataResponse對象最終沒有在LoadDataFromResponse中更新值。它具有初始值。
我怎樣才能確保它返回更新後的值而不是初始值?
你不會在那裏返回任何價值? –
我需要將dataResponse返回給LoadData方法的調用方。 – Joe
@Joe那麼,'返回'呢? 'LoadData'是非void函數,但它沒有'return'語句,這反過來就意味着這樣的程序的行爲是不確定的。 –