次のコードでは、チェーン内のlambdaのいずれもそのような型を返さない場合、変数t
に正しいタスクが割り当てられているのはなぜですか?ラムダはtask<http_response>
、task<json::value>
を返します。チェーンの最後のタスクは何ですか? - C++ rest sdk?
コードは、最後のラムダがタスクを返し、何も返さないときに機能します。
これについていくつかの光を当ててくれるオンラインドキュメントへの任意のポインタが評価されます。
ありがとうございました。
pplx::task<void> t = client.request(methods::GET, L"/api/dummy")
.then([](http_response response)
{
if (response.status_code() == status_codes::OK)
{
response.content_ready().wait();
return response.extract_json(); // return task<json::value>
}
})
.then([](json::value value)
{
if (value.has_field(L"id"))
{
int id = value.at(L"id").as_integer();
}
// t.wait() below works regardless if this
// line is commented out or not.
//return pplx::task<void>({});
});
try
{
t.wait();
}
catch (const std::exception &e)
{
[...]
}
これは何[...]ですか? –
[...]は、主にjsonからのデータの抽出を主に行うコードを表しています。そこに作成/返されたどのようなタスクもありません。私はそれに応じて投稿を更新した。 – bdristan