Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 所有解析请求错误回调调用的角度全局实用程序函数_Angularjs_Parse Platform_Error Handling - Fatal编程技术网

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

Angularjs 所有解析请求错误回调调用的角度全局实用程序函数,angularjs,parse-platform,error-handling,Angularjs,Parse Platform,Error Handling,我目前正在编写一个angular应用程序,我正在重构我的代码,检查所有的错误处理。目前我的Angular应用程序使用Parse.com,我必须在应用程序中管理会话令牌。Parse.com特别建议构建一个全局实用程序函数,所有Parse请求错误回调都应该调用该函数。我对构建这个全局效用函数很感兴趣,但我不确定它的实现。我猜我应该将其作为服务编写,并将其注入所有控制器中进行错误检查。下面是Parse.com代码 function handleParseError(err) { switch (e

我目前正在编写一个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);
}))

我猜我应该编写一个服务来实现这样的错误处理功能

.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实现此建议所需的吗?如果是这样的话,你也许可以投票反对我的问题?(对此不熟悉)

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

function(err) {
  ParseErrorHandler.handleParseError(err);
}
您应该将其转化为一个函数:

function logError(err) {
  ParseErrorHandler.handleParseError(err);
}
这将使您的代码更干净

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

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

function(err) {
  ParseErrorHandler.handleParseError(err);
}
您应该将其转化为一个函数:

function logError(err) {
  ParseErrorHandler.handleParseError(err);
}
这将使您的代码更干净

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

您的意思是:query.find()。然后(function(){…},logError(err))(在代码中添加err作为logError的参数)不,它应该是logError,因为find需要的是函数而不是函数的结果。通过执行logError(err),它将返回logError的结果,以查找哪个find不知道如何处理它。find是一个将接受arguments.Cool的函数。脱帽晾干。建议take您的意思是:query.find()。然后(function(){…},logError(err))(在代码中添加err作为logError的参数)不,它应该是logError,因为find需要的是函数而不是函数的结果。通过执行logError(err),它将返回logError的结果,以查找哪个find不知道如何处理它。find是一个将接受arguments.Cool的函数。脱帽晾干。听取的意见