从 UnityWebRequest 调用 OnComplete 后,虽然状态仍然为 InProgress
我这样做来观察一个 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 仍然为 InProgress,unityWebRequest.downloadHandler.text 为空,且 unityWebRequest.isDone 为 false。因此,OnComplete 有时似乎过早地被调用。
这是一个 bug 吗?或者我必须以某种方式不同地从 UnityWebRequest 创建 Observable 对象吗?
内容来源: neuecc/UniRx