У меня есть следующая функция, где я выталкиваю все обещания в массиве, а затем использую функцию then, я имею в виду travserse, хотя обещания и получить массивы данных, которые имеют каждое обещание (услуга возвращает массив jsons)
var getPP= function(){
var promises = [];
angular.forEach($scope.myObjects, function(myObject) {
var urlPath = <someurl>+myObject.name;
var promise = $http({
url : urlPath,
method: 'GET'
});
promises.push(promise);
});
$q.all(promises).then(function(data){
for(j=0; j < data.length; j++){
var jsonArray= [];
console.log('response = '+data[j]+' and j = '+j);-->
**this log statement just prints a [object object]
even though the json array is pretty huge as returned by the service. What are these two objects?**
for (k = 0; k < data[j].length; k++) {
**--> It never gets here and does not logs anything below**
console.log('inside loop');
console.log(data[j][k].id+data[j][k].empname);
}
}
});
Я получаю данные правильно? Любые входы, как мы можем это сделать? Прочитайте два комментария в коде для проблем, с которыми я столкнулся.
Спасибо!
EDIT 1 - JSON выглядит примерно так -
[{
"id": 1,
"empname": "emp1"
},
{
"id": 2,
"empname": "emp2"
},
{
"id": 3,
"empname": "emp3"
}]
EDIT 2: Я также попытался изменить мое обещание определение переменной, как показано ниже, но такой же вопрос
var promise = $http({
url : urlPath,
method: 'GET'
}).success(function(data, status){
defer.resolve(data);
})
.error(function(data, status) {
defer.reject(status);
});
EDIT 3: В соответствии с ваше предложение и использование формата переменной обещания EDIT 2 - вот вывод в консоли, когда я использую следующие два консольных оператора:
console.log ('response =' + JSON.stringify (данные [j]) + 'и j =' + j);
Консоль вывода:
response = {"data":[{"id": 1,"empname": "emp1"},{"id": 2,"empname": "emp2"},{"id": 3,"empname": "emp3"}],"status":200,"config":{"method":"GET","transformRequest":[null],"transformResponse":[null],"url":"http://localhost:8091/api/types?isoCode=USA&groupName=AdvisorySpeedLimit2_40","headers":{"Accept":"application/json, text/plain, */*","X-Requested-With":"XMLHttpRequest"},"requestTimestamp":1458169519915,"responseTimestamp":1458169520190},"statusText":"OK"}
Помимо недостающих 'var' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' Покажите нам, как выглядит JSON, который '$ http' получает для каждого имени, и мы можем сказать вам [как правильно пройти его] (http://stackoverflow.com/q/11922383/1048572). – Bergi
Добавлено edit 1 для json – Tisha
Возможно, вы захотите использовать 'console.log (данные [j] [k] .id + data [j] [k] .empname);' – Bergi