错误处理
大多数Parse JavaScript函数使用具有回调的对象报告其成功或失败,类似于Backbone的“options”对象。这两个主要回调是success和error。
success回调只会在操作完成且没有错误时被调用。通常,它的参数是save或get方法的Parse.Object、或find方法的Parse.Object数组。
error回调在通过网络与Parse Cloud进行交互时发生任何错误时被调用。这些错误可能是连接到Parse Cloud出错或执行请求操作时出错。
我们来看一个例子。在下面的代码中,我们尝试获取一个不存在的对象objectId。Parse Cloud将返回一个错误——以下是在回调中如何正确处理它的示例:
var query = new Parse.Query(Note);
query.get("aBcDeFgH", {
success: function(results) {
// This function will *not* be called.
alert("Everything went fine!");
},
error: function(model, error) {
// This will be called.
// error is an instance of Parse.Error with details about the error.
if (error.code === Parse.Error.OBJECT_NOT_FOUND) {
alert("Uh oh, we couldn't find the object!");
}
}
});
也可能因为设备无法连接到Parse Cloud而导致查询失败。回调依然相同,只是还需要一些额外的代码来处理这种情况:
var query = new Parse.Query(Note);
query.get("thisObjectIdDoesntExist", {
success: function(results) {
// This function will *not* be called.
alert("Everything went fine!");
},
error: function(model, error) {
// This will be called.
// error is an instance of Parse.Error with details about the error.
if (error.code === Parse.Error.OBJECT_NOT_FOUND) {
alert("Uh oh, we couldn't find the object!");
} else if (error.code === Parse.Error.CONNECTION_FAILED) {
alert("Uh oh, we couldn't even connect to the Parse Cloud!");
}
}
});
对于像save和signUp这类会影响特定Parse.Object对象的方法,error回调函数的第一个参数是对象本身,第二个参数是Parse.Error对象。这是为了与类Backbone的框架兼容。
对于Parse.Error错误代码列表,请参见“错误代码Error Codes”章节,或参见JavaScript API Parse.Error的Parse.Error部分。