我試圖分配一個可變數據之前 - 從我的$ HTTP請求檢索>值。 但是,即使在使用諾言之後,用於該變量的代碼也會首先執行,而不是等待http請求。
我是新來的角,但是我想「承諾」要照顧這。 請建議!
.controller('Gym_DetailsController', function($scope, $http, $state, $timeout, providerdetailservice, $location, $ionicScrollDelegate, $window, $rootScope, $q) {
$rootScope.providerid = $state.params.UPNO;
$scope.whichProv = $state.params.UPNO;
var one = providerdetailservice.getdetails($scope.whichProv);
$q.all([one]).then(function(arr) {
$scope.providerinfo = arr;
console.log(arr[0].data[0].AREA);
$scope.image = arr[0].data[0].ProvImage;
console.log($scope.image); * * // This gives output as my required answer but SECOND --> Executed Second**
},
function(err) {
}
).
finally(
function() {
//Nothing
})
console.log($scope.image); * * // This gives output as undefined FIRST --> Executed first**
$scope.items = [{
src: $scope.image,
sub: 'This is a <b>subtitle</b>'
}]
})
這可能是最好的/最簡單的資源,當它涉及到承諾,它使用漫畫! http://andyshora.com/promises-angularjs-explained-as-cartoon.html – lux
謝謝@lux。這很有用。 – Sanketh