所有Parse请求错误回调调用的角度全局实用程序函数



我目前正在编写一个angular应用程序,我正在重构我的代码,审查所有的错误处理。目前我的Angular应用程序使用Parse.com,我必须在应用程序中管理会话令牌。Parse.com特别建议构建一个全局实用程序函数,该函数应被所有Parse请求错误回调调用。我对构建这个全局效用函数很感兴趣,但我不确定它的实现。我想我应该把它写成一个服务,并把它注入到我所有的控制器中进行错误检查。这是Parse.com代码

function handleParseError(err) {
  switch (err.code) {
    case Parse.Error.INVALID_SESSION_TOKEN:
      Parse.User.logOut();
      ... // If web browser, render a log in screen
      ... // If Express.js, redirect the user to the log in route
      break;
    ... // Other Parse API errors that you want to explicitly handle
  }
}
// For each API request, call the global error handler
query.find().then(function() {
    ...
}, function(err) {
  handleParseError(err);

});

https://www.parse.com/docs/js/guide#sessions-处理无效会话令牌错误

我想我应该写一个实现错误处理功能的服务,比如这个

.service(ParseErrorHandler, function(){
   return{
         function handleParseError(err) {
            switch (err.code) {
             case Parse.Error.INVALID_SESSION_TOKEN:
               Parse.User.logOut();
               $scope.go('app.login');
               break;
              ... // Other Parse API errors that you want to explicit handle
              ...//List of Parse.com Error Codes to reference at link below
              ...////http://parse.com/docs/dotnet/api/html/
              ...//T_Parse_ParseException_ErrorCode.htm 
            }
        }
     }
 })

然后在我的控制器中,我在必要的地方注入ParseErrorHandler服务,并调用函数的错误处理程序部分中的函数

query.find().then(function() {
  ...
}, function(err) {
  ParseErrorHandler.handleParseError(err);
});

这是从Parse实现这个建议所需要的吗?如果是的话,你也许可以支持我的问题?(不熟悉SO)

服务是在控制器之间共享/持久化数据的正确方式。您提供的代码看起来很可靠。一个建议是你应该把你的代码弄干。我假设你会做很多

function(err) {
  ParseErrorHandler.handleParseError(err);
}

你应该把它变成一个函数:

function logError(err) {
  ParseErrorHandler.handleParseError(err);
}

这将使您的代码更干净。

query.find().then(function() {
  ...
}, logError);

最新更新