this code
$scope.login = function(){ $http.post(url+'auth/login', {email:'dummy@gmail.com', password:'password'}).then(function(r){ locker.put('token', r.data.token); console.log(locker.get('token')); }); }; $scope.one = function(){ ingredientservice.ingredients().then(function (response) { var data = response.data; locker.put('token', response.headers('authorization').split(" ")[1]); console.log(locker.get('token')); }); }; var deferred = $q.defer(); var promise = deferred.promise; promise = promise.then($scope.login()).then($scope.one()); i want login(), when has finish, want execute one().
but why one() has began run before login() has done?
this made error because one() need token login()
i think login , 1 should never called, because "promise" never resolved.
you should below, please notice $scope.login should return promise , can chained "then".
$scope.login = function(){ return $http.post(url+'auth/login', {email:'dummy@gmail.com', password:'password'}).then(function(r){ locker.put('token', r.data.token); console.log(locker.get('token')); }); }; $scope.one = function(){ ingredientservice.ingredients().then(function (response) { var data = response.data; locker.put('token', response.headers('authorization').split(" ")[1]); console.log(locker.get('token')); }); }; $scope.login().then($scope.one);
Comments
Post a Comment