Кто-нибудь знает, как получить сообщение об ошибке из функции beforeSave. Например, если моя функция BeforeSave выглядит следующим образом:Получение сообщения об ошибке из Parse.Cloud.beforeSave to Unity
Parse.Cloud.beforeSave("UserData", function(request, response) {
var currentSaveVersion = request.object.get("SaveVersion");
var query = new Parse.Query("UserData");
query.equalTo("Username", request.object.get("Username"));
query.find({
success: function(results) {
var lastSaveVersion = -1000;
for (var i = 0; i < results.length; ++i) {
lastSaveVersion = results[i].get("SaveVersion");
}
if(currentSaveVersion == (lastSaveVersion + 1)) {
console.log("UserData BeforeSave success");
response.success({ "success": "Successful save" });
} else {
var errorMessage = "UserData BeforeSave SaveVersion Mismatch";
console.log(errorMessage);
//we need to respond with success to unity, but examine the return value for the error
response.success({ "code": "SaveMismatch", "message": errorMessage });
}
},
error: function(user,error) {
var errorMessage = "UserData BeforeSave Could not look up lastSaveVersion";
console.log(errorMessage);
response.error(errorMessage);
if (error.code >= 200 && error.code < 300) {
// Unity Hack
response.success({ "code": error.code, "message": error.message });
} else {
response.error({ "code": error.code, "message": error.message });
}
}
});
});
К сожалению, Unity считает, что она будет успешной, но я не могу получить возвращаемое значение обратно, потому что класс System.Threading.Task не имеет возврата имущества, упомянутого в связанной должности here.
Вот облако стороны единства, что я пытаюсь использовать, чтобы увидеть, что там может быть ошибка, посылаемой в сообщении response.success ... вот пример, который не компилируется:
системы. Threading.Tasks.Task task = myUserData.SaveAsync();
while (!task.IsCompleted) yield return null;
if (task.IsCanceled){
// the save was cancelled.
Debug.Log ("ParseManager.cs saveUserData, task cancelled");
} else if (task.IsFaulted) {
// The login failed. Check task.Exception to see why.
Debug.Log ("ParseManager.cs saveUserData, task exception: ");
debugLogException(task);
} else {
// the object was saved successfully.
Debug.Log ("ParseManager.cs saveUserData, save successful ");
Debug.Log ("Task result: " + task.Result);
newUserSaveNeeded = false;
}
Обратите внимание, что System.Threading.Tasks.Task не имеет свойства Result. Каков правильный тип C#, возвращаемый SaveAsync, который позволит мне увидеть результат?
Или я все об этом не так?