我正在做的是使用AngularJS,Parse.com和$ routeChangeError中的ngRoute的简单登录和身份验证系统。
$rootScope.$on('$routeChangeError', function(event, next, previous, error) {
// We can catch the error thrown when the $requireAuth promise is rejected
// and redirect the user back to the home page
if (error === "AUTH_REQUIRED") {
$location.path('/');
}
});
我遵循与应用程序的“等待和消耗”Firebase示例(https://github.com/gordonmzhu/angular-course-demo-app-v2/blob/master/src/app/app.module.js)相同的架构。
在firebase中有一个承诺,验证用户是否经过身份验证,并在拒绝承诺时返回错误字符串“AUTH_REQUIRED”,然后$ routeChangeError启动,我的页面无法访问(整洁! !),但是!!! ...我想对Parse.com JS SDK做同样的事情。目前我使用Parse.User.current()进行登录和注册,所以我想继续使用Parse.com
我的直接问题是:Parse.com中的类似于firebase.com $ requireAuth()的承诺吗?
我尝试了Parse.User.currentAsync(),但没有触发$ routeChangeError :(
这里有一些关于firebase.com $ requireAuth()的文档: https://www.firebase.com/docs/web/libraries/angular/guide/user-auth.html#section-routers
这是我的Auth服务工厂:
(function() {
'use strict';
angular
.module('app.waitList')
.config(configFunction);
configFunction.$inject = ['$routeProvider'];
function configFunction($routeProvider) {
$routeProvider.when('/waitlist', {
templateUrl: 'app/waitList/waitList.html',
controller: 'WaitListController',
controllerAs: 'vm',
resolve: {user: resolveUser}
});
}
resolveUser.$inject = ['authService'];
function resolveUser(authService) {
// return Parse.com - Parse.User.PROMISE??????
return authService.firebaseAuthObject.$requireAuth();
}
})();
应用模块:
(function() {
'use strict';
angular
.module('app', [
// Angular modules.
'ngRoute',
// Third party modules.
'firebase',
// Custom modules.
...
])
.config(configFunction)
.run(runFunction);
configFunction.$inject = ['$routeProvider'];
function configFunction($routeProvider) {
$routeProvider.otherwise({
redirectTo: '/'
});
}
runFunction.$inject = ['$rootScope', '$location'];
function runFunction($rootScope, $location) {
$rootScope.$on('$routeChangeError', function(event, next, previous, error) {
// We can catch the error thrown when the $requireAuth promise is rejected
// and redirect the user back to the home page
if (error === "AUTH_REQUIRED") {
$location.path('/');
}
});
}
})();
答案 0 :(得分:1)
您可以使用omp_set_num_threads()
创建承诺,使用$q.when
$q.reject