-1
我寫angularJS的控制器內的一個簡單的Java腳本函數,
$scope.getwork = function(taskData){
$scope.workData = workData;
var i =0;
do{
var getworkQuery = CommunicationsService.getGetworkValue($scope.workData.requestId, $scope.workData.waitTime);
getworkQuery.query({},function(resp1,$scope){
$scope.getTaskValue=resp1;
console.log("inside getTaskAttri ");
console.log($scope.getTaskValue);
console.log($scope.getTaskValue.status);
console.log($scope.getTaskValue.errorMessage);
i++;
});
}while($scope.getworkValue.status == 'processing' && i<3);
}
在這裏,我得到錯誤,
TypeError: Cannot read property 'status' of undefined
at Object.$scope.getTaskAttri (http://127.0.0.1:7002/vtmui/views/js/Controllers/GetWorkController.js:128:31)
at http://127.0.0.1:7002/vtmui/views/js/Controllers/GetTaskController.js:102:24
at http://127.0.0.1:7002/vtmui/views/lib/angular/angular-resource.js:413:30
at wrappedCallback (http://127.0.0.1:7002/vtmui/views/lib/angular/angular.js:6995:59)
at http://127.0.0.1:7002/vtmui/views/lib/angular/angular.js:7032:26
at Object.Scope.$eval (http://127.0.0.1:7002/vtmui/views/lib/angular/angular.js:8218:28)
at Object.Scope.$digest (http://127.0.0.1:7002/vtmui/views/lib/angular/angular.js:8077:25)
at Object.Scope.$apply (http://127.0.0.1:7002/vtmui/views/lib/angular/angular.js:8304:24)
at done (http://127.0.0.1:7002/vtmui/views/lib/angular/angular.js:9357:20)
at completeRequest (http://127.0.0.1:7002/vtmui/views/lib/angular/angular.js:9531:7) angular.js:5930
inside getTaskAttri GetTaskController.js:122
Resource {requestId: "2641991", status: "failure", errorMessage: "Communication failure during execution process.", waitTime: 0, workLsit: Array[0]…}
failure
Communication failure during execution process.
console.log
的do..while
循環內是越來越顯示,但它顯示在while循環未定義錯誤用於可變$scope.getworkValue.status
:
while($scope.getworkValue.status == 'processing' && i<3);
任何想法如何解決這個問題?
歡迎來到**異步**的美妙世界!你不能那樣做。 – SLaks
看看這有助於http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call – elclanrs
@Slaks我瞭解aysnc功能。是否有任何方法可以達到我的要求。我需要做一個ajax調用,直到$ scope.getworkValue.status ='處理'或最多3次。有什麼建議麼? –