Angularjs 所有解析请求错误回调调用的角度全局实用程序函数
我目前正在编写一个angular应用程序,我正在重构我的代码,检查所有的错误处理。目前我的Angular应用程序使用Parse.com,我必须在应用程序中管理会话令牌。Parse.com特别建议构建一个全局实用程序函数,所有Parse请求错误回调都应该调用该函数。我对构建这个全局效用函数很感兴趣,但我不确定它的实现。我猜我应该将其作为服务编写,并将其注入所有控制器中进行错误检查。下面是Parse.com代码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
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的函数。脱帽晾干。听取的意见