Я получаю следующее сообщение об ошибке:.then не определен на devicesIsReady
Uncaught TypeError: loginService.verificarSesion(...).then is not a function
Я думаю, что я не понимаю прекрасно обещание
мне нужно проверить, если пользователь вошел в систему на deviceIsReady на моем приложении apache-cordova. Это часть функции:
.run(function($ionicPlatform, $http, $state, loginService) {
$ionicPlatform.ready(function() {
loginService.verificarSesion()
.then(function(usuario) {
if(usuario == 1){
//es complejo
$state.go('app.home');
}
else if(usuario == 2){
//es usuario comun
$state.go('app.home-usuario');
}
else{
//no se renococió ningún usuario válido
$state.go('app.login');
}
})
.catch(function(e){
console.log('error trying to find the user');
});
});
})
.config(function($urlRouterProvider) {
// if none of the above states are matched, use this as the fallback
$urlRouterProvider.otherwise('/app/login');
});
Услуга:
(function() {
'use strict';
angular
.module('example.login')
.factory('loginService', loginService);
loginService.$inject = ['$http','remoteDataService', '$q','_','localStorageService'];
/* @ngInject */
function loginService($http, remoteDataService, $q,_, localStorageService){
var token = 'token';
var usuario = 'usuario';
var service = {
verificarSesion: verificarSesion
};
return service;
//funcion para saber si hay una sesión activa
function verificarSesion() {
var usuariologueado = localStorageService.get(token) || [];
if (usuariologueado == []){
return [];
}
return localStorageService.get(usuario);
}
//generar error si hubo un problema
function generarError(e){
if (e.message) {
return $q.reject(e.message);
}
return $q.reject('Hubo un problema al conectarse al servidor. Intente nuevamente.');
}
}
})();
Если пользователь вошел в системе я должен сено пользователя на другую точку зрения.
Что я делаю неправильно? Спасибо!
Отступ здесь несовместим, и это затрудняет выполнение вашего кода. Почему вы отступаете от закрывающих скобок на 'if'? Это чрезвычайно непослушный стиль. Причина, по которой я жалуюсь, состоит в том, что код обратного вызова и обещания должен быть очень тщательно вложенным или он не будет работать так, как вы ожидаете. – tadman
Хорошо, позвольте мне исправить это –
Я скопировал код в sublime tex и изменил идентификатор @tadman –