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"); 
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
what explicit promise construction antipattern , how avoid it?
why angular $http success/error methods deprecated? removed v1.6?
ninja squad -- traps, anti-patterns , tips angularjs promises
good theory needs updated use.then,.catchmethods.
Comments
Post a Comment