gpt4 book ai didi

javascript - 将多个 promise 传递给 $q.all 无效。

转载 作者:行者123 更新时间:2023-11-30 08:37:37 25 4
gpt4 key购买 nike

我正在尝试遍历一个对象,然后从两个服务 API 函数中为每次迭代提取数据,然后这两个 API 函数将返回数据并使用返回的结果填充我当前的迭代对象。现在,由于这些服务函数正在使用 $http 对象,因此会返回 promise ,因此我需要等待响应才能填充我的对象。

这是我第一次使用 $q AngularJS 库,我不确定我是否能够按照我使用它的方式使用它。我们没有正确返回,所以我假设我没有正确返回,而且我似乎无法让我的代码正常工作。

这是我的代码:

Controller 函数

$scope.returnTasksAndPayments = function() {
var defer = $q.defer();
var promisesTasks = [];
var promisesPayments = [];
for(var i in $scope.projects) {
promisesTasks[i] = ProjectService.fetchTaskData($scope.projects[i].project_id);
promisesPayments[i] = ProjectService.fetchPaymentsData($scope.projects[i].project_id);
}

$q.all(promisesTasks, promisesPayments).then(function(promiseArray) {
console.log(promiseArray);
});
};

和我的服务功能:

this.fetchProjectsData = function(options) {
return api().get("http://dashboards.blurgroup.dev/src/projectPayments/services/JSONdata.json", {
order : options.order,
page : options.page,
page_size : options.page_size,
status : options.status,
search : options.search,
assigned : options.assigned
});
};

this.fetchTaskData = function(options) {
return api().get("http://dashboards.blurgroup.dev/src/projectPayments/services/JSONdataTasks.json", {

});
};

this.fetchPaymentsData = function(options) {
return api().get("http://dashboards.blurgroup.dev/src/projectPayments/services/JSONdataPayments.json", {

});
};

如您所见,我正在尝试遍历我的 $scope.projects 对象,为每次迭代调用这两个函数并将它们放入单独的 promise 对象中,然后使用 $q.all 检查这两个 promise 对象是否已实现.

这似乎没有正常工作,而且似乎存储在 $q.all 函数的“promisesPayments”数组中的数据没有被添加到 $q.all 回调数组中的 promiseArray 变量中。

谁能指出我哪里出错了?谢谢

最佳答案

试试这个:

var promisesTasksAll = $q.all(promisesTasks);
var promisesPaymentsAll = $q.all(promisesPayments);

$q.all([promisesTasksAll, promisesPaymentsAll]).then(function(data){
//data[0] will contain promisesTasks data
//data[1] will contain promisesPayments data
});

关于javascript - 将多个 promise 传递给 $q.all 无效。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29990378/

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