开源Parse Server

16.错误处理Error Handling

2017-09-23  本文已影响0人  xiangdong_9013

错误处理

大多数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部分。

上一篇下一篇

猜你喜欢

热点阅读