我一直使用簡單的http方法返回的諾言很長一段時間。但我需要首先鏈接多個API調用並處理數據並返回該數據。問題我目前正在執行的是工廠沒有回覆承諾,因此不等待數據並執行控制器的下一行。合併多個API調用和處理後從工廠方法返回承諾
app.factory('mytestService', ['$http', function($http){
getSomeDataById: function(id){
var userAllProjects = [];
var myHelperService = this.getSecondData;
this.getFirstData(id).then(function(response){ // first api call
var idObjectValue = response['result'][0]['id'];
myHelperService(idObjectValue).then(function(response){ //second api call
userAllProjects= response['projectList']
});
});
return userAllProjects
}
]);
現在控制器,當我做:
$scope.allProjects = mytestService.getSomeDataById(1234);
console.log($scope.allProjects);
控制檯打印不確定的。我知道這是因爲它不會等待服務完成並刪除下一行。
我是小角度承諾的新手,所以不知道如何處理。任何人都可以在這裏幫我。 如果您需要更多信息,請讓我知道。
功能'getSomeDataById'全部過程後,沒有返回 – Weedoze
它返回userAllProjects。 – undefined
它不等待請求完成 – Weedoze