私はStackOverflowで数多くの類似した投稿を検索しましたが、ラムダがコルーチン内にあるので、私の問題に近づかないようです。無名関数から値を返すためのインライン構文は何ですか?
マイコード:
public string FetchInternetItems()
{
WWW www = new WWW(someURL);
StartCoroutine(WaitForRequest(www, callback => {
if(!string.IsNullOrEmpty(callback))
{
Debug.Log("Successfully worked..");
}
else
{
return "Did not connect to remote server.";
}
}));
WaitForRequest
からの抜粋:
IEnumerator WaitForRequest(WWW www, Action<string> callback)
{
yield return www;
if (string.IsNullOrEmpty(www.error))
{
if (callback != null)
{
callback(www.text);
}
}
else
{
Debug.Log("WWW Error: " + www.error);
}
}
コルーチンクラスがここで見つけることができます:エラーを返しますhttps://docs.unity3d.com/ScriptReference/MonoBehaviour.StartCoroutine.html
:
Anonymous function converted to a void returning delegate cannot return a value
何も届かない限り、callback
を返信し、代わりにDid not connect to remote server.
というメッセージを返すことをお勧めします。
「WaitForRequest」の2番目のパラメータのように聞こえるのは、voidデリゲートです。この場合、値を返すことはできません。彼が価値を戻すためにはどんなことが期待されますか? –
ああ。それは理にかなっている。私は 'string'値を期待しています。私の謝罪もその方法を含めないことです。 – Trip
私の質問は、戻り値を_receive_する必要がありますか?コードはちょうどコルーチンを開始しているので、戻り値を受け取るものはありません。また、 'Asction'は 'string'を返しますが、' Action ' –