#530·UniRx

从 UnityWebRequest 调用 OnComplete 后,虽然状态仍然为 InProgress

作者: achimmihca创建于 2023年2月7日更新于 2023年2月7日

我这样做来观察一个 UnityWebRequest 对象: UnityWebRequest unityWebRequest = UnityWebRequest.Get(uri);

void OnNext() { Debug.Log($"'{unityWebRequest.method}' '{unityWebRequest.uri}' 已更新。状态: {unityWebRequest.result}、响应码: {unityWebRequest.responseCode}"); }

void OnError() { Debug.LogError($"'{unityWebRequest.method}' '{unityWebRequest.uri}' 失败。状态: {unityWebRequest.result}、响应码: {unityWebRequest.responseCode}、错误消息: {ex.Message}"); Debug.LogException(ex); }

void OnComplete() { Debug.Log($"'{unityWebRequest.method}' '{unityWebRequest.uri}' 已完成。状态: {unityWebRequest.result}、响应码: {unityWebRequest.responseCode}、响应体: {unityWebRequest.downloadHandler.text}"); }

unityWebRequest .SendWebRequest() .AsAsyncOperationObservable() .Subscribe(OnSucess, OnError, OnComplete); 我的问题是,有时(并非总是)OnComplete 方法会被调用,尽管 unityWebRequest.result 仍然为 InProgressunityWebRequest.downloadHandler.text 为空,且 unityWebRequest.isDone 为 false。因此,OnComplete 有时似乎过早地被调用。 这是一个 bug 吗?或者我必须以某种方式不同地从 UnityWebRequest 创建 Observable 对象吗?