gpt4 book ai didi

javascript - Angular $http 然后解析 _.each 中的多个调用

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:14:05 25 4
gpt4 key购买 nike

我正在尝试从 _.each 中的 $http 获取多个数据,并在 $scope.tasksData 中显示组合数据。

但问题是_.each是后执行的,先返回null,请指导如何解决这个问题。

谢谢

var tasksList, processingStageId;

var apiURL = "http://localhost:9080/caseDetails/" + $stateParams.caseId + "?_=1461046349867";



var stagesList = $http.get(apiURL).then(function(resdata, status, headers, config) {

return resdata;

}).then(function(stagesData) {

stageId = stagesData.data.childStages;
var allTasksData = [];
var self = this;

_.each(stageId, function(item) {
var stagesApiURL = "http://localhost:9080/stageDetails/" + item.stage.stageId;

$http.get(stagesApiURL).then(function(taskData, status, headers, config) {
//_.extend(allTasksData, taskData.data);
allTasksData.push(taskData.data);

});
});

return allTasksData;

}).then(function(allTasksData) {
console.log("Hello");

_.each(allTasksData, function(data) {
$scope.tasksData.concat(data);
});
});

最佳答案

要在解决所有请求后获取数据,请使用 $q.all([prom, prom, prom])

.then(function(stagesData){
var stageId = stagesData.data.childStages;
var tasks = [];

_.each(stageId, function(item){
var stagesApiURL = "http://localhost:9080/stageDetails/" + item.stage.stageId;
var req = $http.get(stagesApiURL).then(function(taskData, status, headers, config){
return taskData.data;
});
tasks.push(req);
});

//Merge all promise request. Resolve when all request resolved
return $q.all(tasks);

})
/**
* allTasksData - [taskData.data, taskData.data , ...]
*/
.then(function(allTasksData){
...
});

关于javascript - Angular $http 然后解析 _.each 中的多个调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36932493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com