angularjs - How to use $http promise response outside success handler -


$scope.tempobject = {};   $http({    method: 'get',    url: '/myresturl' }).then(function successcallback(response) {    $scope.tempobject = response    console.log("temp object in successcallback ", $scope.tempobject); }, function errorcallback(response) {  }); console.log("temp object outside $http ", $scope.tempobject); 

i getting response in successcallback not getting $scope.tempobject outside $http. showing undefined.

how access response or $scope.tempobject after $http

but if want use $scope.tempobject after callback how can use it. ?

you need chain httppromise. save httppromise , return value onfullfilled handler function.

//save httppromise chaining var httppromise = $http({    method: 'get',    url: '/myresturl' }).then(function onfulfilledhandler(response) {     $scope.tempobject = response     console.log("temp object in successcallback ", $scope.tempobject);     //return object chaining    return $scope.tempobject;  }); 

then outside chain httppromise.

httppromise.then (function (tempobject) {     console.log("temp object outside $http ", tempobject); }); 

for more information, see angularjs $q service api reference -- chaining promises.

it possible create chains of length , since promise can resolved promise (which defer resolution further), possible pause/defer resolution of promises @ point in chain. makes possible implement powerful apis.1


explaination of promise-based asynchronous operations

console.log("part1"); console.log("part2"); var promise = $http.get(url); promise.then(function successhandler(response){     console.log("part3"); }); console.log("part4"); 

pic

the console log "part4" doesn't have wait data come server. executes after xhr starts. console log "part3" inside success handler function held $q service , invoked after data has arrived server , xhr completes.

demo

console.log("part 1");  console.log("part 2");  var promise = new promise(r=>r());  promise.then(function() {      console.log("part 3");  });  console.log("part *4*");


additional resources


Comments

Popular posts from this blog

java - pagination of xlsx file to XSSFworkbook using apache POI -

Unlimited choices in BASH case statement -

apache - How do I stop my index.php being run twice for every user -