有谁知道如何从beforeSave函数返回一个错误。例如,如果我的beforeSave功能如下:从Parse.Cloud.beforeSave返回错误消息到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 });
}
}
});
});
不幸的是团结认为它是成功的,但因为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属性。 SaveAsync返回的正确C#类型是什么,可以让我看到结果?
或者我在谈论这一切都是错误的?