错误处理

Parse的大多数JavaScript函数会在回调中返回一个成功或失败的对象,类似于Backbone中的”options”对象。

successerror这两个回调中,每当操作完成且没有错误,就会调用seccesssaveget中,success通常会是一个Parse.Object;在find中,会是一个Parse.Object数组。当与云端交互结束后出现了任何错误,就会调用errorerror可能是连接云端的问题,也可能是执行请求操作的问题。

我们来看一个例子,在下面代码中,我们尝试去拉取一个云端不存在的对象,云端将会返回一个error,我们要根据error信息做相应的处理:

  1. var query = new Parse.Query(Note);
  2. query.get("aBcDeFgH", {
  3. success: function(results) {
  4. // 不会被调用
  5. alert("Everything went fine!");
  6. },
  7. error: function(model, error) {
  8. // error是一个包含了错误信息的Parse.Error实例
  9. if (error.code === Parse.Error.OBJECT_NOT_FOUND) {
  10. alert("Uh oh, we couldn't find the object!");
  11. }
  12. }
  13. });

下面代码中的查询也会失败,因为设备没有连接到云端。我们需要增加一点代码来处理这个错误:

  1. var query = new Parse.Query(Note);
  2. query.get("thisObjectIdDoesntExist", {
  3. success: function(results) {
  4. // 不会被调用
  5. alert("Everything went fine!");
  6. },
  7. error: function(model, error) {
  8. // error是一个包含了错误信息的Parse.Error实例
  9. if (error.code === Parse.Error.OBJECT_NOT_FOUND) {
  10. alert("Uh oh, we couldn't find the object!");
  11. } else if (error.code === Parse.Error.CONNECTION_FAILED) {
  12. alert("Uh oh, we couldn't even connect to the Parse Cloud!");
  13. }
  14. }
  15. });

对于像savesignUp这样会影响特定Parse.Object的方法,error方法的第一个参数将会是Parse.Object本身,第二个参数将会是Parse.Error对象。这是为了和类Backbone框架兼容。

要查看Parse.Eroor错误码列表,请查看错误码章节。