gpt4 book ai didi

javascript - 如果我返回一个以 promise 作为对象的自定义映射数组,我该如何访问服务响应数据?

转载 作者:行者123 更新时间:2023-11-30 00:12:04 24 4
gpt4 key购买 nike

这是我的代码:

function myobject(name, anotherArray){
this.name = name; this.anotherArray = anotherArray;
}

//$scope.myObjects is an array of myObject


function pMap(name, promise){
this.name= name;
this.promise = promise;
};

var getAllPromises = function(){
var promises = [];
angular.forEach($scope.myobjects, function(myobject) {
urlPath = <someurl>+myobject.name;
var promise = $http({
url : urlPath,
method: 'GET'
});
promises.push(new pMap(myobject.name, promise));
});
return $q.all(promises);
};

现在,当我使用 .then 在单独的函数中按如下方式接受每个 promise 时,我不确定如何访问上述服务返回的 json?

 getAllPromises.then(function(pData){
angular.forEach(pData, function(pMap){
var name = pMap.name;
var responseArray = promiseMap.<?> --> how do I access the json returned by the service here?
<I need to assign $scope.myobjects.anotherArray to data returned by the promise but this has to be done using the name attribute of each myobject>

});
});

任何想法如何做到这一点?一般而言, promise 模式和 angularjs 是新手

最佳答案

你可以这样做:

var promises;
angular.forEach($scope.myobjects, function(myobject) {
var promise = $http({
url : urlPath,
method: 'GET'
});
promises.push(promise);
});
$q.all(promises).then(function(resolvedPromises) {
var firstPushedPromise = resolvedPromises[0];
//var xPushedPromise = resolvedPromises[x];
}

resolvedPromises 在这里是一个数组,索引将与您推送它们的索引相同。您可以通过它们的索引访问所有其他 promise 。

如果您不打算使用 myobject,我不确定为什么要遍历 $scope.myobjects

关于javascript - 如果我返回一个以 promise 作为对象的自定义映射数组,我该如何访问服务响应数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36045363/

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